Mongo聚合2

时间:2015-03-27 09:55:54

标签: javascript php mongodb

我的藏品中有以下文件

    {
      "tid": ObjectId("55000d39d334c55402d63b30"),
      "by": "54ffd513d334c55102d63af1",
      "for": "54fee9d5d334c50502d63b0f",
      "receiver": "54feea86d334c50302d63b13",
      "review": "test review 1",
      "cts": {
        "mongo": ISODate("2015-03-27T09:32:31.0Z"),
        "micro": 1427448751.4229
    }  {
      "tid": ObjectId("55000d39d334wq5402d63b30"),
      "by": "54ffd513d334c55102d63af1",
      "for": "54fee9d5d334c50502d63b0f",
      "receiver": "54feea8wqwqc50302d63b13",
      "review": "test review 2",
      "cts": {
        "mongo": ISODate("2015-03-27T09:32:31.0Z"),
        "micro": 1427448751.4229
    }  {
      "tid": ObjectId("5asad39d334c55402d63b30"),
      "by": "54ffd513d334c55102d63af1",
      "for": "54fee9d5d334c50502d63b0f",
      "receiver": "54feea86345ghs0302d63b13",
      "review": "Super duper",
      "cts": {
        "mongo": ISODate("2015-03-27T09:32:31.0Z"),
        "micro": 1427448751.4229
    }

我需要一个查询来获取按接收者排序的评论和每个接收者的总评论。我有以下查询。

 db.reviews.aggregation( {'$match':{for:'54fee9d5d334c50502d63b0f',review:{'$exists':true}}},{'$group':{'_id':'$receiver','total':{'$sum':1}}})

它只会返回审核次数和ID。我也想要其他领域。

1 个答案:

答案 0 :(得分:0)

你的文件无效 - 你错过了关闭}并且其中一个ObjectId无效。

尝试以下方法:

db.reviews.aggregate([
    { "$group" : { "_id" : "$receiver", "total" : { "$sum" : 1 } } },
    { "$sort" : { "receiver" : 1 } }
])
相关问题