我們對 MongoDB 查詢撰寫真的很陌生。我們有 2 個 MongoDB 表供應商 1 和供應商 2。兩者都有相同的 _id。但是這些物件的版本號有時可能不同。當2個集合的版本不同時,我們需要找出_id(即Supplier1.version!= Supplier2.version)
供應商1
{
"_id" : ObjectId("60cd86b914dfed073d77300f"),
"companyName" : "Main Supplier",
"version" : NumberLong(246),
}
供應商2
{
"_id" : ObjectId("60cd86b914dfed073d77300f"),
"companyName" : "Main Supplier",
"version" : NumberLong(247),
}
我們到目前為止所寫的內容并沒有想法繼續前進。非常感謝任何幫助。
db.getCollection("Supplier1").aggregate([
{
$lookup: {
from: "Supplier2",
localField: "_id",
foreignField: "_id",
as: "selected-supplier"
}
},
uj5u.com熱心網友回復:
您可以簡單地在$lookup. 只需$unwind使用結果陣列即可過濾掉不需要的結果。
db.Supplier1.aggregate([
{
"$lookup": {
"from": "Supplier2",
"let": {
id1: "$_id",
version1: "$version"
},
"pipeline": [
{
"$match": {
$expr: {
$and: [
{
$eq: [
"$$id1",
"$_id"
]
},
{
$ne: [
"$$version1",
"$version"
]
}
]
}
}
}
],
"as": "selected-supplier"
}
},
{
"$unwind": "$selected-supplier"
}
])
這是Mongo游樂場供您參考。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/495723.html
