MongoDB合并文档

Posted

技术标签:

【中文标题】MongoDB合并文档【英文标题】:MongoDB merging documents 【发布时间】:2019-03-21 19:29:48 【问题描述】:

我的收藏有以下形式:

 "_id" : ObjectId("5bc5dec478f5e2032d37e7c2"), "" : 1, "C_ID" : 1, "I_ID" : 7503672, "TIMESTAMP" : "2018-03-12"
 "_id" : ObjectId("4bc5dec478f5e2032e37e7c2"), "" : 1, "C_ID" : 1, "I_ID" : 6003672, "TIMESTAMP" : "2018-03-12"
 "_id" : ObjectId("2bc5dec478frgsg32d37e7c2"), "" : 1, "C_ID" : 1, "I_ID" : 9003672, "TIMESTAMP" : "2017-03-12"

我想合并集合以获得这个:

 "_id" : ObjectId("8bc5dec478f5e2032d37e7c2"), "" : 1, "C_ID" : 1, "I_ID" : [7503672, 6003672], "TIMESTAMP" : "2018-03-12"
 "_id" : ObjectId("2bc5dec478frgsg32d37e7c2"), "" : 1, "C_ID" : 1, "I_ID" : 9003672, "TIMESTAMP" : "2017-03-12"

直到现在我尝试使用 $mergeObjects 命令但没有成功。

【问题讨论】:

我通过使用解决了这个问题:db.test.categories.aggregate([ "$group": "_id": "C_ID": "$C_ID","TIMESTAMP": "$TIMESTAMP","I_ID":"$addToSet":"$I_ID"]) 【参考方案1】:

另外,是否有任何查询可以提供以下输出:

 "_id" : ObjectId("2bc5dec478frgsg32d37e7c2"), "" : 1, "C_ID" : 1, "DATE": ["TIMESTAMP" : "2017-03-12", "I_ID" : 9003672, "TIMESTAMP" : "2018-03-12", "I_ID" : [7503672, 6003672]]

【讨论】:

以上是关于MongoDB合并文档的主要内容,如果未能解决你的问题,请参考以下文章

如何合并MongoDB中的对象

MongoDB:将来自多个集合的数据合并为一个..如何?

基于键合并两个数组并使用 mongodb 聚合添加新字段

MongoDB - 多个查询和单个文档结果

详细教程一文参透MongoDB聚合查询

MongoDB:在一个查询中从不同的集合中获取文档