Dee*_*eeV 0 mongodb mongodb-query
我继承了一个包含MongoDB服务器中大量数据的项目.我正在为它写一些查询,并遇到了一个相当烦人的问题.我需要找到我们称之为的唯一值的数量ID.问题是,根据这些数据的来源,它们可能出现在两个不同的点上.
例如,表格看起来像这样:
{
foo: {
ID: "ABC123"
},
bar: {
ID: undefined
}
}
Run Code Online (Sandbox Code Playgroud)
要么
{
foo: {
ID: undefined
},
bar: {
ID: "ABC123"
}
}
Run Code Online (Sandbox Code Playgroud)
要么
{
foo: {
ID: "ABC123"
},
bar: {
ID: "ABC123"
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我现在无法重新建模数据.我对MongoDB的了解相当有限.我想知道是否有一种方法可以使用聚合将这些连接在一起,因此我将所有ID集合到一个Document中,因此它们都是唯一的.将一个或另一个组合起来相当微不足道,但将两者分组都会给我重复.
您可以使用$project,然后$group,然后$addToSet.
db.c.aggregate([
{
$project : {
_id : 0,
IDS : ["$foo.ID", "$bar.ID"]
}
},
{
$unwind : "$IDS"
},
{
$group : {
_id : 1,
distinctIds : {
$addToSet : "$IDS"
}
}
}
])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |