Mongosh:对字段的引用未得到解析

问题描述 投票:0回答:1

我正在尝试使用以下命令更新我的

campaigns
集合:

db.campaigns.updateMany(
  { _id: ObjectId("65b1b0dd6182c1dfe906f3be") },
  {
    $set: {
      "status": "$created_by",
      "is_active_new": "$is_active.type",
    }
  }
)

当我运行此命令时,状态实际上设置为“$created_by”并且该值未解析。根据我的理解,它应该具有 $created_by 字段的实际值,而不是文字字符串。 $is_active_new 也是如此。

MongoDb 版本是 6.0.12 Enterprise。

mongodb mongo-shell
1个回答
0
投票

正如评论中提到的,您需要一个聚合管道。在您的情况下,您只需要添加括号

[]
:

db.campaigns.updateOne(
  { _id: ObjectId("65b1b0dd6182c1dfe906f3be") },
  [{
    $set: {
      "status": "$created_by",
      "is_active_new": "$is_active.type",
    }
  }]
)

注意,

_id
是主键,因此
updateMany
没有多大意义。 (但事实上这对你的情况没有任何区别)

© www.soinside.com 2019 - 2024. All rights reserved.