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设置- hintoption 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.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 } } ] )