我写了这个聚合管道.我想要更新在这个管道中匹配的文档,并按阶段进行更新.我假设$replaceRoot会这样做.我是不是错了?我只是想知道聚合管道是否可以更新文档.如果是,这是一种最佳实践还是一种黑客行为.而且我不想使用$out运算符.
[
{ $match: { name: "awss3-metadata-loader" } },
{
$set: {
tags: {
$cond: {
if: {
$in: [{ $type: "$tags" }, ["null"]],
},
then: [
{
k: "awss3metadataloader",
v: "new",
},
],
else: {},
},
},
},
},
{ $replaceRoot: { newRoot: "$$ROOT" } },
]```