这是架构:
{
"_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版本
答案 0 :(得分:2)
你的语法错了。 $
前缀用于对字段的变量引用或以其他方式保留给"运算符"当用在"键" "键/值"的一部分符号。它也永远不会让那些使用"复合键"分组_id
时只有一个字段的符号:
db.drivers.aggregate([
{ "$group": { _
"_id": "$recruiter.referred"
"total_recommendations":{ "$sum": 1 }
}}
])