我如何计算mongoDB中使用聚合的引用数量

时间:2015-03-11 23:49:47

标签: mongodb mongodb-query aggregation-framework

这是架构:

{
"_id" : ObjectId("54f8d7ad92ccf803008a0e4f"),
"personal" : {
    "name" : "test",
    "placa" : "BBB222"
},
"recruiter" : {
    "user_id" : "541cba6fe4b0288d56081fe2",
    "date" : 1425594285410,
    "name" : "Mario Hart",
    "rol" : "greeter",
    "channel" : "referido",
    "referred" : "VERA"
},

我想创建一个名单列表,计算每个人拥有的参赛人数。我正在尝试以下方式,但它根本不工作。这是我写的代码。

db.drivers.aggregate( {
$group: { _
    id:{"$personal.name",
     "$recruiter.referred"    
     },
        total_recommendations:{ $sum:1}  } 
     }   ])

这不起作用,我不能使这段代码有效。 我正在运行的服务器是2.6.8版本

1 个答案:

答案 0 :(得分:2)

你的语法错了。 $前缀用于对字段的变量引用或以其他方式保留给"运算符"当用在"键" "键/值"的一部分符号。它也永远不会让那些使用"复合键"分组_id时只有一个字段的符号:

db.drivers.aggregate([
    { "$group": { _
        "_id": "$recruiter.referred"    
        "total_recommendations":{ "$sum": 1 }
    }} 
])