mongodb - 合并mongoDB中的两个数组字段

标签 mongodb mongodb-query aggregation-framework

我有以下结构的集合

{
   _id : ObjectId("52f0795a58c5061aa34d436a"),
   "attribute1" : [1, 3, 6, 7],
   "attribute2" : [2, 4, 6, 8]
}

有什么方法可以合并这两个属性,同时在 mongoDB 中使用聚合查询删除重复项?我需要这样的结果:

{
   _id : ObjectId("52f0795a58c5061aa34d436a"),
   "attribute3" : [1, 3, 6, 7, 2, 4, 8]
}

最佳答案

使用 .aggregate()方法和 $setUnion运营商。

db.collection.aggregate([
    { "$project": { 
        "attribute3": { "$setUnion": [ "$attribute1", "$attribute2" ] } 
    }}
])

产生:

{
    "_id" : ObjectId("52f0795a58c5061aa34d436a"),
    "attribute3" : [8, 4, 2, 6, 3, 7, 1]
}

关于mongodb - 合并mongoDB中的两个数组字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21545103/

相关文章:

mongodb - 数组项上的 $dateToString

database - 如何在 MongoDB 上进行旋转?

c# - Webapi 在 docker-compose 中看不到 MongoDB

mongodb - Windows 上的 Meteor.js,如何连接到现有数据库

windows - 为什么 MongoDB 位置运算符 ($[]) 在 Windows 计算机上失败,但在 Mac 上工作?

arrays - 从 mongodb 数组中查找最小值和最大值

mongodb - 在聚合中生成 ObjectID

php - api-platform odm iri 引用不会被转换成 json 中的对象

mongodb - MongoDB 聚合 $project 是否会减少内存中保存的数据量?

arrays - 如何从 json 中删除空数组。我数组中没有元素,我想删除数组。它的嵌套数组