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

MongoDB中一次查询更新多个文档

岳朝
2023-03-14
本文向大家介绍MongoDB中一次查询更新多个文档,包括了MongoDB中一次查询更新多个文档的使用技巧和注意事项,需要的朋友参考一下

要通过单个查询更新许多文档,请在MongoDB中使用 bulkWrite()。让我们创建一个包含文档的集合-

> db.demo760.insertOne({id:1,details:{Value1:100,Value2:50}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5eb0309f5637cd592b2a4aee")
}
> db.demo760.insertOne({id:2,details:{Value1:60,Value2:70}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5eb030a15637cd592b2a4aef")
}
> db.demo760.insertOne({id:3,details:{Value1:80,Value2:90}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5eb030a15637cd592b2a4af0")
}

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

> db.demo760.find();

这将产生以下输出-

{ "_id" : ObjectId("5eb0309f5637cd592b2a4aee"), "id" : 1, "details" : { "Value1" : 100, "Value2" : 50 } }
{ "_id" : ObjectId("5eb030a15637cd592b2a4aef"), "id" : 2, "details" : { "Value1" : 60, "Value2" : 70 } }
{ "_id" : ObjectId("5eb030a15637cd592b2a4af0"), "id" : 3, "details" : { "Value1" : 80, "Value2" : 90 } }

以下是使用MongoDB中的一个查询来更新许多文档的查询-

> db.demo760.bulkWrite([
...    {
...       updateOne: {
...          filter: {id: 1},
...          update: {$set: {'details.Value1': 900, 'details.Value2': 500}},
...       }
...    },
...    {
...    updateOne: {
...       filter: {id: 2},
...       update: {$set: {'details.Value1': 1000, 'details.Value2': 2000}},
...    },
... }
... ])
{
   "acknowledged" : true,
   "deletedCount" : 0,
   "insertedCount" : 0,
   "matchedCount" : 2,
   "upsertedCount" : 0,
   "insertedIds" : {
   },
   "upsertedIds" : {
   }
}

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

> db.demo760.find();

这将产生以下输出-

{ "_id" : ObjectId("5eb0309f5637cd592b2a4aee"), "id" : 1, "details" : { "Value1" : 900, "Value2" : 500 } }
{ "_id" : ObjectId("5eb030a15637cd592b2a4aef"), "id" : 2, "details" : { "Value1" : 1000, "Value2" : 2000 } }
{ "_id" : ObjectId("5eb030a15637cd592b2a4af0"), "id" : 3, "details" : { "Value1" : 80, "Value2" : 90 } }

 类似资料:
  • 我有一个弹性搜索中按查询更新的用例。 我把一个医生- null 然而,这一次也失败了。 任何关于使用Where更新可以做什么的想法。提前致谢

  • 本文向大家介绍MongoDB查询中如何更新嵌套文档,包括了MongoDB查询中如何更新嵌套文档的使用技巧和注意事项,需要的朋友参考一下 要更新嵌套文档,请使用update(),并在其中使用点号。让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是更新嵌套文档的查询- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出-

  • 问题内容: 我在这里找到了一些可以更新一个字段的东西:http : //www.karlrixon.co.uk/articles/sql/update-multiple-rows-with-different- values-and-a-single-sql- query/ 我的问题是如何更新多个字段?如: 这当然是行不通的。尝试了其他几种组合并失败了。任何的想法?谢谢! 问题答案:

  • 我尝试通过实现以下函数,使用单个查询更新多行(约 350000): 尝试运行上述函数时,仅更新了 31 条记录。然后,我尝试使用以下函数逐行更新: 后者迄今已更新了所有记录,但速度很慢(估计将在9小时内结束)。有人知道更新多个记录的有效方法吗?

  • 在我的用例中,我希望使用spring-data-mongo一次更新多个文档,即与查询匹配的文档。 这是我一直在尝试的, MongoDB-3.6 spring-data-mongoDB-1.5.5.release

  • 问题内容: 我有2张桌子,如下所示: serial_table serial_key CHARACTER VARYING(20), PRIMARY KEY(id, serial_key) serial_rate: serial_key CHARACTER VARYING(20), rate NUMERIC, PRIMARY KEY(id, serial_key), FOREIGN KEY (id,