[英]JOIN query in mongo to include all fields of primary collections & selected fields of other collections
我想包括主要集合的所有字段和我已加入聚合函數的其他集合的 2-3 個字段。 我可以使用 $project 作為
> $project:
> {
> "_id":1,
> "currency":1,
> "studentId":1,
> ............
> ............
> "partners.address.country": 1,
> "course.courserName": 1
> }
我在主要收藏中有超過 25 條記錄,也希望它更具動態性。 有沒有其他方法可以讓我不必編寫主要集合的每個字段。
從技術上講,您可以使用 $project 和 $addFields 的組合,但最好從性能角度計算應用程序級別的字段列表。
我能想到的唯一有效用例是當您事先不知道主集合的所有字段時。
因此,假設“合作伙伴”和“課程”來自 $lookup 管道可以是這樣的:
db.collection.aggregate([
{
$addFields: {
"tmp": {
"partners": "$partners",
"course": "$course"
}
}
},
{
$project: {
"partners": false,
"course": false
}
},
{
$addFields: {
"partners.address.country": "$tmp.partners.address.country",
"course.courserName": "$tmp.course.courserName"
}
},
{
$project: {
"tmp": false
}
}
])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.