Mongo DB updateMany 查询未正确设置变量

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

我有这个 mongo 查询

db.getCollection("users").updateMany({ _id: ObjectId('65d8fd25618ef79985233636') }, { $set: { questionAnswers: { hobbies: "$hobbies", islandItems: "$islandItems", superPower: "$superPower" }}}) 
我正在尝试将此用户对象上已存在的变量设置为名为 QuestionAnswers 的新 json 对象内部,它的工作原理是它将创建该对象,但值不会从变量中复制,它只是设置它到一个合法的字符串“$islandItems”,其中包含美元符号。

如有任何帮助,我们将不胜感激!

我尝试更改引号和所有内容,看看是否有帮助。我期待它用旧变量填充新变量

mongodb nosql
1个回答
0
投票

从 mongo 4.2 开始,您可以执行带有更新的聚合管道。即更新参数中带有括号

[]

那么您的查询将类似于

db.collection.update({
  _id: ObjectId("65d8fd25618ef79985233636")
},
[
  {
    $set: {
      questionAnswers: {
        hobbies: "$hobbies",
        islandItems: "$islandItems",
        superPower: "$superPower"
      }
    }
  }
])

游乐场

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