gpt4 book ai didi

javascript - $project 以外的方法在 $lookup 和 $unwind 之后限制 MongoDB View 中的数据

转载 作者:行者123 更新时间:2023-11-30 20:23:21 25 4
gpt4 key购买 nike

我正在运行 MongoDB 3.4 版。在我的聚合管道中,如果我在管道后期执行 $lookup 后跟 $unwind,并且我想限制从该 $ 出现的字段lookup,是我唯一的两个选择 1.) 添加另一个 $project,包括我想为带有 { "name": 1 } 的文档显示的所有数据 等,或者添加一个 $project 阶段排除所有我不想要的数据 { "name": 0 } 等等?

我问是因为,无论哪种方式,我都有很多字段需要专门包含或排除。这就是为什么我想知道,在版本 3.4 中,是否有任何其他选项可以让我限制从那个迟到的 $lookup$unwind 出现的数据,除了再次使用 $project

最佳答案

不,除了使用 $project 手动排除或包含字段外,3.4 中没有此类选项。只要它不会膨胀超过 BSON 限制,它就应该不是问题。

从 3.6 开始,您可以使用 new variant of $lookup stage使用额外的管道。但即使这样,您也必须在您要加入的集合上使用 $project:

db.collectionx.aggregate([
// ...
{$lookup: {
from: 'collectiony',
let: {field: '$field'},
as: 'y',
pipeline: [
{$match: {$expr: {$eq: ['$field', '$$field']}}},
{$project: {
fieldA: 0,
fieldB: 0,
fieldC: 0
}}
]
}},
// ...
])

关于javascript - $project 以外的方法在 $lookup 和 $unwind 之后限制 MongoDB View 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51215973/

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