我正在嘗試從 MongoDB 中檢索其他檔案的陣列欄位中未參考的所有記錄。我有以下格式的資料:
[
{ "domain": "foo.com", "altNames": [] },
{ "domain": "bar.com", "altNames": [] },
{ "domain": "zaz.com", "altNames": ["foo.com", "bar.com"]},
{ "domain": "baz.com", "altNames": ["boo.com"]}
]
從這些資料中,我想檢索具有域的記錄,zaz.com并且baz.com由于它們domain未位于另一個記錄altNames陣列中。
uj5u.com熱心網友回復:
執行自查找并檢查結果陣列是否為空
db.collection.aggregate([
{
"$lookup": {
"from": "collection",
let: {
d: "$domain"
},
pipeline: [
{
"$match": {
$expr: {
$in: [
"$$d",
"$altNames"
]
}
}
},
{
$limit: 1
}
],
"as": "altNamesLookup"
}
},
{
"$match": {
altNamesLookup: []
}
},
{
"$project": {
altNamesLookup: false
}
}
])
這是Mongo 游樂場供您參考。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/357786.html
