当在mongodb中聚合时,$对字段做什么

时间:2016-03-09 07:22:52

标签: mongodb aggregation-framework

db.cata.aggregate([{"$unwind":"$review"},{$group:{_id:"review",cnt:{$sum:1}}}]).pretty()

db.cata.aggregate([{"$unwind":"$review"},{$group:{_id:"$review",cnt:{$sum:1}}}]).pretty()

这两个查询在document..how $ review and review do ... how to $ with fields ......

我的文件是

{
"_id" : ObjectId("56dd01bdf3b660327b932da1"),
"product" : "super",
"price" : 10,
"review" : [
    {
        "user" : "fred",
        "comment" : "great",
        "rating" : 10
    },
    {
        "user" : "tom",
        "comment" : "i agree",
        "rating" : 3
    },
    {
        "user" : "vin",
        "comment" : "good",
        "rating" : 9
    },
    {
        "user" : "anubhav",
        "comment" : "too good",
        "rating" : 8
    }]
}

2 个答案:

答案 0 :(得分:2)

根据Mongodb doc说的

  

操作数是一个字段路径:

     

{ $unwind: <field path> }

     

要指定字段路径,请在字段名称前加上美元符号$,并用引号括起来。

答案 1 :(得分:2)

字段前面的$ fields告诉聚合框架在执行期间注入字段的实际值。

e.g。在你的情况下。

db.cata.aggregate([{"$unwind":"$review"} $审核将被审核字段的内容替换为

{
    "user" : "fred",
    "comment" : "great",
    "rating" : 10
}
...

但你真的需要阅读文档。这比在Stack Overflow上写问题容易得多。