Bulk.find.hint()
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()
方法来执行批量写入操作。
Description描述
Bulk.find.hint()
New in version 4.2.1.4.2.1版新增。Sets the设置hint
option that specifies the index to support theBulk.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 onBulk.find.removeOne()
Bulk.find.hint()
对Bulk.find.removeOne()
没有影响
Example实例
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 } } ] )