Komenda db.testCollection.createIndex({ _id: 1 }, {name: "_id_2", unique: true, background: true})
kończy się niepowodzeniem w wersji mongo 3.4.2, ale nie 3.2.11. Dokumentacja mongo wskazuje, że wersja 3.4 obsługuje atrybuty unique
i background
.mongodb 3.4.2 InvalidIndexSpecificationOption error: Pole "unique" nie jest poprawne dla specyfikacji _id index
Mongo 3.4.2 zawiedzie ...
> 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"
}
>
Mongo 3.2.11 działa ...
> 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
}
>
ktoś wie o pracy w pobliżu?
Używamy opakowania Mongoose Node.js do tworzenia indeksów Mongo, więc nie dodawanie atrybutów unique
i background
nie jest opcją.
Pozdrawiam!
Ed
Dzięki J.Jussi, to wszystko. Nie zagłębiłem się w notatkę z 3.2.11, która wskazywała na zbędne żądanie indeksowania. To oczywiste, kiedy już to wskazałeś. – icedawn