MongoDBでは、dropIndexes() メソッドを使用すると、コレクションから1つ以上のインデックスを削除できます。
単一のインデックスを削除するには、インデックスの名前またはその定義/仕様ドキュメントを渡します。テキストインデックスの場合は、インデックス名のみを指定できます。
複数のインデックスを削除するには、配列でインデックス名を渡します。
すべてのインデックスを削除するには(_idを除く) インデックス)、引数を渡さないでください。
インデックスの例
petsというコレクションがあるとします。 。 getIndexes()を使用できます インデックスを確認するには:
db.pets.getIndexes() 結果:
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_"
},
{
"v" : 2,
"key" : {
"type" : 1
},
"name" : "type_1"
},
{
"v" : 2,
"key" : {
"name" : 1
},
"name" : "name_1",
"hidden" : true
},
{
"v" : 2,
"key" : {
"weight" : -1
},
"name" : "weight_-1"
}
]
この場合、4つのインデックスがあります。 1つ目は、_idのデフォルトのインデックスです。 分野。このインデックスは、コレクションを作成すると自動的に作成され、削除することはできません。
他の3つのインデックスはできます ドロップされます。
単一のインデックスを削除する
単一のインデックスを削除するには、インデックス名またはその仕様書を渡します。
例:
db.pets.dropIndexes("weight_-1") この場合、インデックス名を渡します。
これを実行すると、次の出力が得られます:
{ "nIndexesWas" : 4, "ok" : 1 } これは、インデックスが削除されたことを示しています。
または、仕様書を渡すことでインデックスを削除することもできます:
db.pets.dropIndexes( { "weight" : -1 } ) 複数のインデックスを削除する
すべてではなく複数のインデックスを削除する場合は、インデックス名を配列で渡します。
例:
db.pets.dropIndexes( [ "type_1", "name_1" ]) 結果:
{ "nIndexesWas" : 3, "ok" : 1 } この段階で、インデックスのリストを再確認しましょう。
db.pets.getIndexes() 結果:
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ] 予想どおり、3つのインデックスが削除され、残りは1つだけです(削除できません)。
すべてのインデックスを削除
dropIndexes()を呼び出すと、すべてのインデックスを削除できます。 引数のないメソッド。
この例では、productsというコレクションにインデックスをドロップしてみましょう。 。このコレクションには、次の4つのインデックスがあります。
db.products.getIndexes() 結果:
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_"
},
{
"v" : 2,
"key" : {
"product.$**" : 1
},
"name" : "product.$**_1"
},
{
"v" : 2,
"key" : {
"sizes" : 1
},
"name" : "sizes_1"
},
{
"v" : 2,
"key" : {
"stock" : -1
},
"name" : "stock_-1"
}
] それでは、すべてのインデックスを削除しましょう:
db.products.dropIndexes() 結果:
{
"nIndexesWas" : 4,
"msg" : "non-_id indexes dropped for collection",
"ok" : 1
}
メッセージがほのめかしているように、_idを除くすべてのインデックスが削除されました 索引。このインデックスは削除できません。
インデックスをもう一度確認しましょう。
db.products.getIndexes() 結果:
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ]
予想どおり、_id 残っているのはインデックスだけです。
dropIndexes() メソッドはdropIndexesのラッパーです コマンド。
MongoDBドキュメント
dropIndexes()の詳細については、MongoDBのドキュメントを参照してください。 メソッド。