Команда db.testCollection.createIndex({ _id: 1 }, {name: "_id_2", unique: true, background: true})
не работает в версии 3.0.2, но не 3.2.11. Документация mongo указывает, что версия 3.4 поддерживает как атрибуты unique
, так и background
.mongodb 3.4.2 InvalidIndexSpecificationOption error: поле 'unique' недопустимо для спецификации индекса _id
Монго 3.4.2 не удается ...
> use testDB
switched to db testDB
> db.testCollection.createIndex({ _id: 1 }, {name: "_id_2", unique: true, background: true})
{
"ok" : 0,
"errmsg" : "The field 'unique' is not valid for an _id index specification. Specification: { ns: \"testDB.testCollection\", v: 1, key: { _id: 1.0 }, name: \"_id_2\", unique: true, background: true }",
"code" : 197,
"codeName" : "InvalidIndexSpecificationOption"
}
>
Монго 3.2.11 работы ...
> use testDB
switched to db testDB
> db.testCollection.createIndex({ _id: 1 }, {name: "_id_2", unique: true, background: true})
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 1,
"numIndexesAfter" : 1,
"note" : "all indexes already exist",
"ok" : 1
}
>
Кто-нибудь знает работы вокруг?
Мы используем обертку Mongoose Node.js для создания индексов Mongo, поэтому не добавляем атрибуты unique
и background
.
Cheers!
Ed
Спасибо J.Jussi, вот и все. Я не искал заметку из 3.2.11, которая указывала на избыточный запрос индексирования. Теперь так очевидно, что вы указали это. – icedawn