gpt4 book ai didi

javascript - MongoDB如何将子文档的属性聚合分配给父文档

转载 作者:行者123 更新时间:2023-12-01 03:48:19 26 4
gpt4 key购买 nike

我现在有一个聚合,它返回如下所示的对象:

"_id": ObjectId("58f15197315e16762fbd2f0d"),
"versionCount": 3,
"article": {
"_id": ObjectId("58f152ecd549c4783a84f844"),
"otherProps": "etc..."
}

我已经经历了相当多的聚合步骤才到达这里。 article 下有很多属性。问题是,我希望它返回带有 versionCount 属性的文章。我可以创建一个 $project 并将每个属性单独分配给父文档,但这需要很多行代码并且相对脆弱。是否有更有效的方法来获取 article 中的所有属性并将它们分配给聚合返回的文档?

最佳答案

您可以使用$addFields将顶级字段添加到子文档中,并使用$replaceRoot将子文档提升到顶级。

db.collection.aggregate({
$addFields: {
"article.doc_id":"$_id",
"article.versionCount": "$versionCount"
}
}, {
$replaceRoot: {
newRoot: "$article"
}
})

关于javascript - MongoDB如何将子文档的属性聚合分配给父文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43420876/

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