MongoDB - 批量操作方法

MongoDB - 批量操作方法 首页 / MongoDB入门教程 / MongoDB - 批量操作方法

MongoDB批量方法用于执行写入批量操作。

db.collection.initializeOrderBulkOp()

initializeOrderBulkOp,并为该集合提供一个新的Bulk()操作生成器。它构造了 MongoDB 批量运行的写操作的有序列表。

接下来,他将在users集合上初始化Bulk()操作构建器,添加一系列写操作,然后执行这些操作:

var bulk = db.users.initializeOrderedBulkOp();
bulk.insert( { user: "John", status: "A", points: 0 } );
bulk.insert( { user: "Peter", status: "A", points: 0 } );
bulk.insert( { user: "Clint", status: "B", points: 0 } );
bulk.find( { status: "D" } ).remove();
bulk.find( { status: "B" } ).update( { $set: { comment: "Awaited" } } );
bulk.execute();

db.collection.initializeUnorderedBulkOp()

该方法启动并为集合提供new Bulk()操作构建器。它构建了MongoDB在批量中运行的无序写操作列表。

例如  -  以下代码初始化Bulk()操作构建器,并添加一系列插入操作以添加多个文档:

var bulk = db.users.initializeUnorderedBulkOp();
bulk.insert( { user: "John", status: "A", points: 0 } );
bulk.insert( { user: "Peter", status: "A", points: 0 } );
bulk.insert( { user: "Clint", status: "B", points: 0 } );
bulk.execute();

Bulk()方法

批量方法可用于创建写操作列表,以批量执行一个集合。

db.collection.initializeOrderedBulkOp() or the db.collection.initializeUnorderedBulkOp() method.

Bulk()构建器具有以下方法:

无涯教程网

Bulk.insert()可用于在操作列表中添加插入操作。
Bulk.find()它指定删除或更新操作的查询条件。
Bulk.find.removeOne()它将删除操作添加到单个文档的操作列表中。
Bulk.find.remove()它将删除操作添加到多个文档的操作列表中。
Bulk.find.replaceOne()它将文档替换操作添加到许多操作中。
Bulk.find.updateOne()它将单个文档更新操作添加到一系列操作中。
Bulk.find.update()它将多重更新操作添加到一系列操作中。
Bulk.find.upsert()它可以用于指定更新操作正确的upsert。
Bulk.execute()它批量执行一系列操作。
Bulk.getOperations()它提供了在Bulk()操作对象中执行的写入操作的数组。
Bulk.tojson()它返回一个JSON文档,该文档具有Bulk()操作对象中的操作和批处理的数量。
Bulk.toString()它以字符串形式提供Bulk.tojson()结果。

Bulk.execute()方法

它运行由Bulk()方法构建器构建的操作列表。

例如 - 以下代码在items集合上初始化Bulk()操作构建器,添加了一系列插入操作,并执行了这些操作:

var bulk = db.items.initializeUnorderedBulkOp();
bulk.insert( { item: "abc123", status: "A", defaultQty: 500, points: 5 } );
bulk.insert( { item: "ijk123", status: "A", defaultQty: 100, points: 10 } );
bulk.execute( );
The operation returns the following BulkWriteResult() object:
BulkWriteResult({
   "writeErrors" : [ ],
   "writeConcernErrors" : [ ],
   "nInserted" : 2,
   "nUpserted" : 0,
   "nMatched" : 0,
   "nModified" : 0,
   "nRemoved" : 0,
   "upserted" : [ ]
})

Bulk.find(<query>)方法

它可用于指定更新或删除操作的查询条件。使用查询选择器指定查询条件,以选择文档进行更新或删除操作。要指定所有文档,请使用空文档{}。

Bulk.find()可以与以下write命令操作一起使用:

Bulk.find.removeOne()
Bulk.find.remove()
Bulk.find.replaceOne()
Bulk.find.updateOne()
Bulk.find.update()

例如: 下面给出的示例为items集合初始化Bulk()操作构建器,并添加一个remove操作。还将操作更新为操作列表。使用help Bulk.find()方法删除操作并更新操作,为它们各自的动作指定条件:

var bulk = db.items.initializeUnorderedBulkOp();
bulk.find( { status: "D" } ).remove();
bulk.find( { status: "P" } ).update( { $set: { points: 0 } } )
bulk.execute();

Bulk.find.remove()方法

它将删除操作添加到批量操作列表中。 Bulk.find()方法可用于指定条件,该条件确定要删除的文档。 Bulk.find.remove()从集合中删除所有匹配的文档。

下面给出的示例为items集合初始化Bulk()操作构建器,并添加remove操作。删除操作可用于删除状态为" D"的集合中的所有文档:

var bulk = db.items.initializeUnorderedBulkOp();
bulk.find( { status: "D" } ).remove();
bulk.execute();

Bulk.find.replaceOne(<document>)方法

它可用于将单个文档替换操作添加到批量操作列表中。使用此方法可以指定确定必须替换的文档的条件。该方法将替换限制为单个文档。

完全替换现有文档的替换文档。仅包含字段和值对。

例如

下面给出的示例初始化item集合的Bulk()操作构建器,并将各种replaceOne操作添加到操作列表中。

var bulk = db.items.initializeUnorderedBulkOp();
bulk.find( { item: "abc123" } ).replaceOne( { item: "abc123", status: "P", points: 100 } );
bulk.execute();

Bulk.find.update(<update>) 方法

它可用于将多次更新操作添加到批量操作列表中。该方法更新现有文件的特定字段。

链接:https://www.learnfk.comhttps://www.learnfk.com/mongodb/mongodb-bulk-operation-methods.html

来源:LearnFk无涯教程网

Bulk.find()方法可用于指定确定要更新的文档的条件。该方法更新所有匹配的文档。

例如:  以下示例为items集合初始化Bulk()操作构建器,并将各种多重更新操作添加到操作列表中。

var bulk = db.items.initializeUnorderedBulkOp();
bulk.find( { status: "D" } ).update( { $set: { status: "I", points: "0" } } );
bulk.find( { item: null } ).update( { $set: { item: "TBD" } } );
bulk.execute();

Bulk.insert(<document>)方法

它可用于将插入操作添加到批量操作列表中。

例如:  该示例为items集合初始化Bulk()操作构建器,并添加一系列插入操作以添加多个文档:

var bulk = db.items.initializeUnorderedBulkOp();
bulk.insert( { item: "abc123", defaultQty: 100, status: "A", points: 100 } );
bulk.insert( { item: "ijk123", defaultQty: 200, status: "A", points: 200 } );
bulk.insert( { item: "mop123", defaultQty: 0, status: "P", points: 0 } );
bulk.execute();

Bulk.toString()

它可用于将输出作为字符串作为包含批量()对象中的操作数和批处理的json文档。

例如: 下面的示例在items集合上初始化Bulk()操作构建器,添加一系列写入操作,并在批量构建器对象上调用Bulk.toString()。

var bulk = db.items.initializeOrderedBulkOp();
bulk.insert( { item: "abc123", status: "A", defaultQty: 500, points: 5 } );
bulk.insert( { item: "ijk123", status: "A", defaultQty: 100, points: 10 } );
bulk.find( { status: "D" } ).removeOne();
bulk.toString();

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

左耳听风 -〔陈皓〕

Go语言核心36讲 -〔郝林〕

SQL必知必会 -〔陈旸〕

Linux实战技能100讲 -〔尹会生〕

即时消息技术剖析与实战 -〔袁武林〕

快手 · 音视频技术入门课 -〔刘歧〕

零基础GPT应用入门课 -〔林健(键盘)〕

结构学习力 -〔李忠秋〕

结构思考力 · 透过结构看思考 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)