mongodb-从集合中的两个数组中获取一个数组

马科斯

在我的mongodb集合中,文档上有时有两个,有时一个,有时为null的数组。现在,我想在整个集合中使用这些数组的值获取一个数组。

该文档如下所示:

{
    "title" : "myDocument",
    "listOne" : [ 
        "valueOne", 
        "valueTwo"
    ],
    "listTwo" : [ 
        "abc", 
        "qwer"
    ]
},
{
    "title" : "myDocumentTwo",
    "listTwo" : [  
        "321"
    ]
},
{
    "title" : "myDocumentAlpha",
    "listOne" : [ 
        "alpha", 
        "beta"
    ]
},
{
    "title" : "myDocumentbeta"
}

我期望以下输出:

"combinedList" : [
    "valueOne", 
    "valueTwo",
    "abc",
    "qwer",
    "321",
    "alpha",
    "beta"
]

就像此collections中每个文档中来自twos数组的每个可能值一样。

宫殿

您可以使用aggregate$concatArrays

db.collection.aggregate([
  {
    $project: {
      combinedList: {
        $concatArrays: [{$ifNull: ["$listOne", []]}, {$ifNull: ["$listTwo", []]}]
      }
    }
  },
  { $unwind: "$combinedList" },
  { $group: { _id: null, combinedList: { $addToSet: "$combinedList"}}},
  { $project: { _id: 0, combinedList: 1 }}
])

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在MongoDB的一个文档中的两个数组中获取唯一值

MongoDB聚合:如何从两个不同集合的两个数组中查找公共元素

根据mongodb中另一个数组字段的值将数组字段添加到集合中

如何获取不在MongoDB聚合管道中另一个数组中的数组元素?

通过其字符串之一获取整个数组。数组在另一个数组中。Mongodb / Javascript

从$ Lookup在Mongodb中合并两个数组对象

在mongoDB中合并两个数组字段

聚合比较mongodb中的两个数组?

在MongoDB中将多个数组转换为一个数组,并从数组中删除None值

在 mongoDB 中的另一个数组中查询整个特定数组

MongoDB:筛选文档中的多个数组,然后将重复的数组返回到一个数据中

MongoDB 找到一个数组,该数组包含另一个数组中的一个元素

MongoDb:删除另一个数组中数组的索引

MongoDB聚合-在一个数组中显示来自不同数组的值

如何基于mongodb中的另一个数组值对数组进行分组

在mongodb中另一个数组内的数组内添加文档

将数组的开头与mongodb中的另一个数组匹配

在同一MongoDB查询中获取多个数组的数量

如何将一个数组添加到存在于mongodb对象中的另一个数组中

mongodb连接两个表与多个数组

mongodb $project 产生一个数组值数组

如何检查一个数组字段在MongoDB中是否包含唯一值或另一个数组?

在mongodb中的特定值之后插入一个数组项

mongodb 字段中的排序方式包含一个数组

Mongodb Aggregate:将多个键合并到一个数组中

Mongodb根据另一个数组元素过滤一个数组

mongodb从另一个数组获取数组项的索引

从PHP的另一个数组中查找MongoDB数组中的子字符串

如何使用LINQ to MongoDb在文档中另一个数组内部的数组中查找和推送元素