【问题标题】:How to update data in mongodb?如何更新MongoDB中的数据?
【发布时间】:2017-07-07 12:41:41
【问题描述】:

如何更新mongodb中的数据?

这是我收藏的实际结构

db.collection.find().pretty()
{
    "_id" : ObjectId("557914833ac61e518e6103ab"),
    "dataValue" : {
        "value1" : [
            "value1 A",
            "value1 B"
        ]
    }
}

我想在 dataValue 中插入默认值

db.collection.find().pretty()
{
    "_id" : ObjectId("557914833ac61e518e6103ab"),
    "dataValue" : {
        "value1" : [
            "value1 A",
            "value1 B"
        ],
        "default" : [
            "default A",
            "default B"
        ]
    }
}

请帮帮我

【问题讨论】:

标签: mongodb mongodb-query database


【解决方案1】:

试试这个:

db.collection.update(
   { _id: ObjectId("557914833ac61e518e6103ab") }, //update doc with this id
   { $set:
      {
        "dataValue.default": [
         "default A", 
         "default B" 
         ]
      }
   }
)

根据我的评论:https://docs.mongodb.com/manual/reference/method/db.collection.update/

更新的语法是(我们只使用 <query><update> 部分

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>,
     collation: <document>
   }
)

在你的情况下,你需要使用$set

dataValue.default 使用点符号“到达”子文档,并设置属性

【讨论】:

  • db.collection.find({dataValue.value1}).pretty() 这个不行
  • 你能否给出获取dataValue.value1的正确语法
  • 你想找到什么?查询是什么?
  • db.collection.find({dataValue.value1}).pretty() 我试过这个但得到 SyntaxError: Unexpected token .
  • 是的,因为它无效!?你在查询什么...你想通过什么查询?
【解决方案2】:

这可以通过使用 $set 运算符的简单更新来实现

db.collection.update({"_id" : ObjectId("557914833ac61e518e6103ab")},
{ $set: {"dataValue.default" : [
            "default A",
            "default B"
        ]}})

【讨论】:

  • db.collection.find({dataValue.value1}).pretty() 这个不行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 2020-12-08
  • 1970-01-01
  • 2020-08-30
  • 2016-12-16
  • 2021-03-21
相关资源
最近更新 更多