gpt4 book ai didi

javascript - mongodb - 没有本地的聚合查找

转载 作者:行者123 更新时间:2023-11-30 11:09:06 24 4
gpt4 key购买 nike

所以我有两个位于不同集合中的 ObjectId,我想将它们合并为一个输出。所以这就像在没有任何本地字段的情况下使用 $lookup 函数。如果没有聚合,我可以简单地执行两个 .findOne,但这将需要两次 API 调用(这将创建两个连接)。是否可以一次实现?

所以如果没有聚合,它看起来就像这样:

let main_document =
db.findOne({
_id: ObjectId(first)
})

let subdocument =
db.findOne({
_id: ObjectId(second)
})

main_document.subdocument = subdocument

return main_document

最佳答案

您可以使用以下聚合

您不需要在较新的 $lookup 中指定 localField句法。只需在 $lookup 的子管道内使用 $match聚合

db.main_document.aggregate([
{ "$match": { "_id": ObjectId(first) }},
{ "$lookup": {
"from": "subdocument",
"pipeline": [
{ "$match": { "_id": ObjectId(second) }},
],
"as": "subdocument"
}},
{ "$unwind": "$subdocument" }
])

关于javascript - mongodb - 没有本地的聚合查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54473202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com