如何对MongoDB集合中的对象进行分组

真棒猫

我有像这样的文件收藏

{ "owner": "550511223", "file_name": "55234OT01", "file_type": "other", "comment": "Just fix it"},
{ "owner": "550510584", "file_name": "55584RS01", "file_type": "resume", "comment": "Good enough"},
{ "owner": "550511223", "file_name": "55234AP01", "file_type": "applicant", "comment": "This will do"}

我需要一个像这样的对象的结果

{
 [{
  "owner" : "550510584",
  "files" : [{"file_name": "55584RS01","file_type": "resume","comment": "Good enough"}],
 },{
  "owner" : "550511234",
  "files" : [{"file_name": "55234AP01","file_type": "applicant","comment": "This will do"},
             {"file_name": "55234OT01","file_type": "other","comment": "Just fix it"}]
 }]
}

我正在寻找一种方法来做到这一点。我尝试进行分组和聚合,但是我只能将file_name字段压入,因为我搞砸了语法

苯乙烯

您需要$group由“所有者”您的文档进行$push操作,然后使用累加器运算符返回文件数组。

db.collection.aggregate([
    { "$group": {
        "_id": "$owner", 
        "files": { 
            "$push": { 
                "file_name": "$file_name", 
                "file_type": "$file_type", 
                "comment": "$comment" 
            }
         } 
    } }
])

哪个返回:

{
  "_id" : "550510584",
  "files" : [
          {
                  "file_name" : "55584RS01",
                  "file_type" : "resume",
                  "comment" : "Good enough"
          }
  ]
},

{
  "_id" : "550511223",
  "files" : [
          {
                  "file_name" : "55234OT01",
                  "file_type" : "other",
                  "comment" : "Just fix it"
          },
          {
                  "file_name" : "55234AP01",
                  "file_type" : "applicant",
                  "comment" : "This will do"
          }
  ]
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何按内存位置对集合中的对象进行排序?

Java。对Java对象集合中的精确值进行分组和求和

如何在MongoDB中按日期对集合进行排序?

如何在MongoDB中按季度对日期进行分组

如何在mongodb中按月对文档进行分组?

对对象列表进行分组并使用Java集合进行计数

如何根据列值对集合进行分组

如何对数组中的对象进行分组

如何从Mongodb中的两个不同集合进行合并?

如何对mongoDB进行分组并返回结果中的所有字段

如何在php中对mongodb文档进行分组

如何在mongodb聚合中对嵌套字段进行分组

如何对正在分组的mongodb中的聚合集合进行查找?

如何从JSON对象数组中对JSON对象进行分组?

如何在MongoDB中按数据范围对订单进行分组?

mongodb更新查询中来自多个集合的聚合而不进行分组

通过对MongoDB中嵌套的json数组文档的集合进行计数来分组

如何使用MongoDB或Mongoose在一个查询中对两个集合进行分组

如何在MongoDB中同时对多个集合进行全文搜索

如何使用集合按Java中的对象分组?

在 mongodb 中的另一个集合的 foreignField 上使用 $group 进行分组

如何根据mongodb中的日期对记录进行分组

如何在MongoDB中按行对集合进行排序?

如何根据对象中的属性对对象数组进行分组

java 8 如何通过该集合中的列表属性对集合进行分组

如何在不改变对象的情况下按 MongoDB 中的特定字段对查询结果进行分组?

如何在 mongoDB 中取消嵌套和分组集合

如何对javascript对象进行分组?

如何使用 MongoDB 对对象进行分组并显示查询中的所有预期字段