MongoDB CRUD操作:批量写操作
MongoDB提供了批量执行写入操作的能力,但批量写入操作只影响单个集合, MongoDB允许应用程序确定批量写入操作所需的可接受的确认级别。
db.collection.bulkWrite()
方法支持批量插入、更新和删除的操作。当然,通过
db.collection.insertMany()
方法也可以进行批量插入的操作。
关于批量操作的顺序
批量写入操作可以是有序的,也可以是无序的。通过操作的有序列表,MongoDB串行执行操作。如果在处理其中一个写操作期间发生错误,MongoDB 将返回,而不处理列表中任何剩余的写操作。
对于无序列表的操作,MongoDB可以并行执行操作,但不能保证这种行为。如果在处理其中一个写操作的过程中发生错误,MongoDB将继续处理列表中剩余的写操作。
在分片集合上执行有序操作列表通常会比执行无序列表慢,因为使用有序列表时,每个操作都必须等待前一个操作完成。
默认情况下,bulkWrite()
执行有序操作,如果要指定无序写入操作,可以选项文档中设置ordered: false
。
bulkWrite()支持的方法
bulkWrite()
支持下面的写操作:
insertOne
updateOne
updateMany
replaceOne
deleteOne
deleteMany
所有的写操作都作为数组中的文档传递给bulkWrite()
举例
使用下面的脚本创建pizzas
集合:
db.pizzas.insertMany( [
{
_id: 0, type: "pepperoni", size: "small", price: 4 },
{
_id: 1, type: "cheese", size: "medium", price: