Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

Bulk.find.hint()

項目一覧

  • 説明

Tip

MongoDB は、一括書込み操作を実行するための db.collection.bulkWrite() メソッドも提供します。

Bulk.find.hint()

次の場合、hint をサポートする インデックス Bulk.find()を指定する オプションを設定します。

このオプションには、インデックス仕様ドキュメントまたはインデックス名の文字列を指定できます。

存在しないインデックスを指定した場合、操作はエラーになります。

Bulk.find.hint() は には影響しません Bulk.find.removeOne()

サンプル コレクション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" }
] )

サンプル コレクションに次のインデックスを作成します。

db.orders.createIndex( { item: 1 } );
db.orders.createIndex( { item: 1, quantity: 1 } );
db.orders.createIndex( { item: 1, price: 1 } );

次の一括操作では、さまざまなアップデート/置換のドキュメント操作に使用する別のインデックスを指定します。

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();

使用されているインデックスを表示するには、$indexStats パイプラインを使用できます。

db.orders.aggregate( [ { $indexStats: { } }, { $sort: { name: 1 } } ] )

Tip

以下も参照してください。

戻る

Bulk.find.deleteOne

項目一覧