Sto usando mongoDB shell with version 3.0.2
Sto cercando di garantire un vincolo di univocità su un campo username
nella raccolta users
.dropDups true not working mongodb
Questo è quello che ho dato:
db.users.ensureIndex({"username": 1},{unique: true})
mi ha dato errore seguente:
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 1,
"errmsg" : "exception: E11000 duplicate key error index: mybackend.users.$username_1 dup key: { : \"rahat\" }",
"code" : 11000,
"ok" : 0
}
Poi ho usato, dropDups: true
nel comando:
db.users.ensureIndex({"username": 1},{unique: true, dropDups: true})
Anche allora ottengo lo stesso errore:
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 1,
"errmsg" : "exception: E11000 duplicate key error index: mybackend.users.$username_1 dup key: { : \"rahat\" }",
"code" : 11000,
"ok" : 0
}
Ho visto anche this SO link ma qui aveva già un indice. Il mio non ce l'ha.
db.users.getIndexes()
->
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "mybackend.users"
}
]
ho cercato this issue on github e riavviato il Mongo, ma senza alcun uso. Che cosa sto facendo di sbagliato? Penso che sto facendo un errore stupido. Per favore aiuto.
capito. Grazie, questo era quello che sospettavo potrebbe essere la ragione per il problema. Dato che non supporta 'dropDups', ci sono altri problemi o dobbiamo eliminare manualmente i record duplicati? – inquisitive
Non sono a conoscenza di nient'altro che un lavoro manuale, mi dispiace. –
Il driver più recente di Node-js mongodb lo mostra ancora sui documenti http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#createIndex –