[英]Set the a MongoDB collection field value based on another collection field value
[英]Get the MongoDB collection field value based on if another collection exists or not
我有兩個像這樣的 collections:
集合_1
[{
name: "p1",
use: "u1"
},
{
name: "p2",
use: "u2"
}, ...]
集合_2
[{
user_name: "p1",
user_id: "Id1"
date: "DATE"
},{
user_name: "p2",
user_id: "Id2"
date: "DATE"
},{
user_name: "p3",
user_id: "Id1"
date: "DATE"
}, ...]
如果collection_1
名稱字段與collection_2
user_name字段匹配並且user_id
等於“Id1”,我希望最喜歡的字段為 boolean。
這在 MongoDB 中的聚合或其他更好的方法中是否可行?
//result
[{
name: "p1",
is_favorite: true
},{
name: "p2",
is_favorite: false,
},{
name: "p2",
is_favorite: true,
}]
$lookup
- 集合col1 (帶鍵: name
)與col2 (帶鍵: user_name
)連接。
$project
- 裝飾 output 文檔。 對於is_favorite
字段,使用$in
運算符檢查Id1
是否在col2.user_id
數組中。
db.col1.aggregate([
{
$lookup: {
from: "col2",
localField: "name",
foreignField: "user_name",
as: "col2"
}
},
{
$project: {
name: 1,
is_favorite: {
$in: [
"Id1",
"$col2.user_id"
]
}
}
}
])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.