Я не могу удалить индекс _id, почему?mongodb: как добавить одно поле в индекс _id, составленный из индекса Compound
Когда я пытаюсь запустить команду 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, 'created': 1});
приведенная выше команда только что создала новый составной индекс. я не нашел некоторую подобную команду create index.
индекс _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"
}
Как сказал Тайлер, вы не можете отказаться от индекса _id. Но вы можете создать составной индекс, который включает _id. - И да _id - уникальный индекс по умолчанию. –