1

_id インデックスを削除できません。なぜですか?

コマンドを実行しようとすると、dropIndexesすべてのインデックスが削除されますが、_id インデックスは削除されません。

やってもうまくいき'db.runCommand'ません:

> db.runCommand({dropIndexes:'fs_files',index:{_id:1}})
{ "nIndexesWas" : 2, "errmsg" : "may not delete _id index", "ok" : 0 }

良くないですよ。

複合インデックスで _id を含むフィールドを使用できますか?

オンラインで何も見つかりませんensureindexでした。コマンドでは実行できません。

db.fs_files.ensureIndex({'_id':1, '作成':1});

上記のコマンドにより、新しい複合インデックスが作成されました。同様の「インデックスの作成」コマンドは見つかりませんでした。

デフォルトの _id インデックスは一意のインデックスですか?

getIndexes戻り値は一意のインデックスではありません。

{
     "v" : 1,
     "key" : {
             "_id" : 1
     },
     "ns" : "gridfs.fs_files",
     "name" : "_id_"
 },
 {
     "v" : 1,
     "key" : {
             "created" : 1
     },
     "unique" : true,
     "ns" : "gridfs.fs_files",
     "name" : "created_1"
 }
4

2 に答える 2

4

createIndex以外にもコマンドがありensureIndexます。

例えば

db.<coll>.createIndex({foo:1})
于 2012-01-04T21:13:07.463 に答える
3

mongodbの「_id」のインデックスは削除できません。

こちらのドキュメントをご覧ください

于 2012-01-04T19:38:08.047 に答える