On this page本页内容
Starting in version 3.2, MongoDB also provides the 从3.2版开始,MongoDB还提供了用于执行批量写入操作的db.collection.bulkWrite()
method for performing bulk write operations.db.collection.bulkWrite()
方法。
Bulk.find.hint()
New in version 4.2.1.在版本4.2.1中新增。
Sets the 设置hint
option that specifies the index to support the Bulk.find()
for:hint
选项,指定支持Bulk.find()
的索引:
The option can take an index specification document or the index name string.该选项可以采用索引规范文档或索引名称字符串。
If you specify an index that does not exist, the operation errors.如果指定的索引不存在,则操作会出错。
Bulk.find.hint()
has no effect on 对Bulk.find.removeOne()
Bulk.find.removeOne()
没有影响
Create an example collection 创建集合orders
:orders
示例:
db.orders.insertMany( [ { "_id" : 1, "item" : "abc", "price" : NumberDecimal("12"), "quantity" : 2, "type": "apparel" }, { "_id" : 2, "item" : "jkl", "price" : NumberDecimal("20"), "quantity" : 1, "type": "electronics" }, { "_id" : 3, "item" : "abc", "price" : NumberDecimal("10"), "quantity" : 5, "type": "apparel" }, { "_id" : 4, "item" : "abc", "price" : NumberDecimal("8"), "quantity" : 10, "type": "apparel" }, { "_id" : 5, "item" : "jkl", "price" : NumberDecimal("15"), "quantity" : 15, "type": "electronics" } ] )
Create the following indexes on the example collection:在示例集合上创建以下索引:
db.orders.createIndex( { item: 1 } ); db.orders.createIndex( { item: 1, quantity: 1 } ); db.orders.createIndex( { item: 1, price: 1 } );
The following bulk operations specify different index to use for the various update/replace document operations:以下批量操作指定用于各种更新/替换文档操作的不同索引:
var bulk = db.orders.initializeUnorderedBulkOp(); bulk.find({ item: "abc", price: { $gte: NumberDecimal("10") }, quantity: { $lte: 10 } }).hint({item: 1, quantity: 1}).replaceOne( { item: "abc123", status: "P", points: 100 } ); bulk.find({ item: "abc", price: { $gte: NumberDecimal("10") }, quantity: { $lte: 10 } }).hint({item: 1, price: 1}).updateOne( { $inc: { points: 10 } } ); bulk.execute();
To view the indexes used, you can use the 要查看使用的索引,可以使用$indexStats
pipeline:$indexStats
管道:
db.orders.aggregate( [ { $indexStats: { } }, { $sort: { name: 1 } } ] )