Sbi*_*dan 5 mongodb mongodb-query aggregation-framework
假设我们有以下文档:
{a: 1, b: 2},
{a: 2, b: 0},
{a: 3, b: 1}
Run Code Online (Sandbox Code Playgroud)
我想要一个将返回的查询:
[0, 1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法比这更快地做到这一点:
a,另一个选择b然后在我的应用程序中合并.您需要$group我们的文档并使用$push累加器运算符来返回集合内的“a”和“b”数组。
在$project运算符中,您可以使用$setUnion运算符来过滤掉重复项。
db.coll.aggregate(
[
{ "$group": {
"_id": null,
"a": { "$push": "$a" },
"b": { "$push": "$b" }
}},
{ "$project": {
"_id": 0,
"merged": { "$setUnion": [ "$a", "$b" ] }
}}
]
)
Run Code Online (Sandbox Code Playgroud)
其产生:
{ "merged" : [ 3, 2, 0, 1 ] }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
330 次 |
| 最近记录: |