当前位置: 首页 > 编程笔记 >

MongoDB查询以使用FindAndUpdate()更新数组?

穆德海
2023-03-14
本文向大家介绍MongoDB查询以使用FindAndUpdate()更新数组?,包括了MongoDB查询以使用FindAndUpdate()更新数组?的使用技巧和注意事项,需要的朋友参考一下

要更新数组,请在MongoDB中使用findAndModify()。让我们创建一个包含文档的集合-

> db.demo152.insertOne({"id":102,"Name":["Chris","David"],Score:45});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3515bcfdf09dd6d08539dd")
}
> db.demo152.insertOne({"id":103,"Name":["Mike","Carol"],Score:65});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3515cafdf09dd6d08539de")
}

在find()方法的帮助下显示集合中的所有文档-

> db.demo152.find();

这将产生以下输出-

{ "_id" : ObjectId("5e3515bcfdf09dd6d08539dd"), "id" : 102, "Name" : [ "Chris", "David" ], "Score" : 45 }
{ "_id" : ObjectId("5e3515cafdf09dd6d08539de"), "id" : 103, "Name" : [ "Mike", "Carol" ], "Score" : 65 }

以下是更新数组的查询-

> var d = db.demo152.findAndModify({
...    query: {
...       id:102,
...       Score: {$lt:50},
...       Name: "Chris"
...    },
...    update: {
...       $set : {"Name.$": "Robert"},
...       $inc: {Score: 20 }
...       }
...    }
...
... )

在find()方法的帮助下显示集合中的所有文档-

> db.demo152.find();

这将产生以下输出-

{ "_id" : ObjectId("5e3515bcfdf09dd6d08539dd"), "id" : 102, "Name" : [ "Robert", "David" ], "Score" : 65 }
{ "_id" : ObjectId("5e3515cafdf09dd6d08539de"), "id" : 103, "Name" : [ "Mike", "Carol" ], "Score" : 65 }
 类似资料:
  • 问题内容: 我正在尝试更新嵌套数组中的值,但无法使其正常工作。 我的对象是这样的 我需要将值推送到“ answeredBy”数组。 在下面的示例中,我尝试将“成功”字符串推到“ 123 _id”对象的“ answeredBy”数组中,但是它不起作用。 我找到了此链接,但其答案仅表示我应该使用类似结构的对象而不是数组。这不适用于我的情况。我真的需要将我的对象嵌套在数组中 如果您能在这里帮助我,那就太

  • OTA更新查询与下载 获取access_token 终端设备 终端设备直接接入OTA服务器应当使用Client Credentials模式,client_id为设备id,client_serect为设备令牌. App接入 如果终端设备无法直接接入OTA服务器,而通过App中转,那么App应当也使用Client Credentials模式,client_id为app_id,client_secret

  • 我正在处理的程序包含两个类,GUI和DatabaseHelper。使用的表模型是DefaultTableModel。 GUI包含一个简单的JTable。它在启动时使用来自DatabaseHelper的数据初始化。这管用。 然而,当尝试将新数据加载到表中时,就不是那么直接了当了。 到目前为止,我的做法是: 现在发生的情况是,加载的数据被附加到已经存在的JTable上。 如果可能的话,我希望实现一个仅

  • 问题内容: 我正在尝试更新嵌套数组中的值,但无法使其正常工作。 我的对象是这样的 我需要将值推送到“ answeredBy”数组。 在下面的示例中,我尝试将“成功”字符串推到“ 123 _id”对象的“ answeredBy”数组中,但是它不起作用。 我找到了此链接,但其答案仅表明我应该使用像结构这样的对象而不是数组。这不适用于我的情况。我真的需要将我的对象嵌套在数组中 如果您能在这里帮助我,那就

  • 这是我在mongo的文档: 我需要更新内部房间阵列中的对象。我尝试了一个选择匹配元素的查询没有语法错误,但出现了一个错误: “errmsg”:“字段“calendar.0.rooms.0.price”必须是数组,但在文档{u id:ObjectId('5cd26a886458720f7a66a3b8')中为字符串类型”, 这是我的疑问: 这是我在StackOverflow中找到的一些参考,但没有帮

  • 问题内容: 我试图用PDO编写更新查询,但我无法执行代码? 问题答案: 您的语法错误 您可能打算更新一行而不是全部更新,因此您必须使用子句来定位特定行 更改 至