【发布时间】:2021-09-18 13:44:12
【问题描述】:
我想从集合中提取文档的 ID,这些文档的 ID 具有重复的“驱动器”对象 ID,这些对象嵌套在“streetModel”中的数组中。
这是我的典型文档:
{
"_id": {
"$oid": "61375bec4fa522001b608568"
},
"name": "Streetz",
"statusDetail": {},
"streetModel": {
"_id": "3.7389-51.0566",
"name": "Kosheen - Darude - Swedish - Trynidad - Maui",
"countryCode": "DEN",
"drives": [{
"_id": -903500698,
"direction": "WEST"
}, {
"_id": 1915399546,
"direction": "EAST"
}, {
"_id": 1294835467,
"direction": "NORTH"
}, {
"_id": 1248969937,
"direction": "EAST"
}, {
"_id": 1248969937,
"direction": "EAST"
}, {
"_id": 1492411786,
"direction": "SOUTH"
}]
},
"createdAt": {
"$date": "2021-09-07T12:32:44.238Z"
}
}
在这个 ID 为 61375bec4fa522001b608568 的特定文档中,在“streetModel”的“drives”数组中,我得到了 ID 为 1248969937 的重复驱动器对象。
我想创建一个对数据库的查询,该查询将返回所有存在此类问题的文档的 ID(重复的“驱动器”)。
现在我得到了这个:
db.streets.aggregate([
{
$unwind: "$streetModel"
},
{
$unwind: "$drives"
},
{
$group: {
_id: {
id: "$_id"
},
sum: {
$sum: 1
},
}
},
{
$match: {
sum: {
$gt: 1
}
}
},
{
$project: {
_id: "$_id._id",
duplicates: {
drives: "$_id"
}
}
}
])
但事实并非如此。
我尝试了很多方法来重写这个查询,但不幸的是它不起作用。
【问题讨论】:
标签: database mongodb mongodb-query nosql nosql-aggregation