Mongo aggregation 2


Mongo aggregation 2

我的收藏中有以下文档

    {
      "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。我还想要其他字段。

您的文档无效-缺少关闭},并且其中一个ObjectId无效。

尝试以下操作:

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