{
"_id" : 5000758100,
"lines" : {
"objId" : 5000758106
}
},
/* 2 */
{
"_id" : 5000758100,
"lines" : {
"objId" : 5000758107
}
}
上面是示例文档。 需要获取所有不同的objID值以及文档中的通用_id。
答案 0 :(得分:0)
以下查询可以为我们提供预期的输出:
db.collection.aggregate([
{
$group:{
"_id":null,
"ids":{
$push:"$_id"
},
"objIDs":{
$addToSet:"$lines.objId"
}
}
},
{
$project:{
"_id":0,
"distinct":{
$setUnion:["$ids","$objIDs"]
}
}
}
])
数据集:
{ "_id" : 5000758100, "lines" : { "objId" : 5000758106 } }
{ "_id" : 5000758101, "lines" : { "objId" : 5000758107 } }
输出:
{ "distinct" : [ 5000758100, 5000758101, 5000758106, 5000758107 ] }