mongodb 聚合命令

WBOY
WBOY원래의
2016-06-07 16:34:471114검색

MongoDB中聚合主要用于处理数据,如统计平均值,求和等等,并返回计算后的数据结果。 1.?countcount函数返回指定集合中的数量。 db. mediaCollection.count()4 db. mediaCollection.find( { Publisher : "Apress", Type: "Book" } ).count()1 2. distinctdist

MongoDB中聚合主要用于处理数据,如统计平均值,求和等等,并返回计算后的数据结果。 1.?count count函数返回指定集合中的数量。
> db. mediaCollection.count()
4
> db. mediaCollection.find( { Publisher : "Apress", Type: "Book" } ).count()
1
2. distinct distinct函数用来除重,找出所有不同的值。
> db. mediaCollection.distinct( "Title")
[ "Definitive Guide to MongoDB, the", "Nevermind" ]
> db. mediaCollection.distinct ("Tracklist.Title")
[ "In Bloom", "Smells like teen spirit" ]
3. group group函数是类似于SQL的GROUP BY功能,虽然语法稍有不同。该命令的目的是返回分组的项目的数组。该函数有三个参数:?key, initial, ?reduce。 key参数指定要以什么来分组,如以标题进行分组。 initial参数每个分组reduce调用的初始值。 reduce参数同类元素放在一起,需要两个参数:当前被遍历的文档和聚集计数器对象。
> db. mediaCollection.group (
... {
... key: {Title : true},
... initial: {Total : 0},
... reduce : function (items,prev)
... {
... prev.Total += 1
... }
... }
... )
[
        {
                "Title" : "Definitive Guide to MongoDB, the",
                "Total" : 1
        },
        {
                "Title" : "Nevermind",
                "Total" : 2
        },
        {
                "Title" : null,
                "Total" : 1
        }
]
除了key, initial, ?reduce参数,还可以指定三个可选参数:keyf,cond,finalize。 group函数目前不能在分片环境下使用,可以使用MapReduce函数来代替。
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.