У меня проблема с созданием уникальных индексов с использованием Mongoose / MongoDb, и я не могу заставить его работать. Я могу добавить два документа с одинаковыми значениями атрибута, когда я установил уникальный индекс.
Я перепробовал все, что мог придумать - перезапустить (все), изменить синтаксис и т. Д.
код
Дополнение >>
Это метод, который я использую для сохранения сущности:
create : function(entity, definition, successFn, errorFn){
var model = mongoose.model(entity);
newModel = new model(definition);
newModel.save(function(error) {
if(error){
if(!errorFn){
throw error;
}
errorFn(newModel);
return;
}
successFn(newModel);
});
}...
<< </p>
var Something = new Schema({
objectId : ObjectId,
name : { type : String, index: { unique: true }},
url : { type : String, index: { unique: true }},
...etc
mongoose.model('Something', Something);
Монго вывод
[conn1] insert xxxxx.agencies 1526ms
[conn1] building new index on { name: 1 } for xxxxx.agencies
[conn1] insert xxxxx.system.indexes exception 11000 E11000 duplicate key error index: xxxxx.agencies.$name_1 dup key: { : "something" } 4ms
[conn1] building new index on { url: 1 } for xxxxx.agencies
[conn1] insert xxxxx.system.indexes exception 11000 E11000 duplicate key error index: xxxxx.agencies.$url_1 dup key: { : "http://www.something.com" } 1ms
Когда я зарегистрировался в MongoHub, индексы не отображаются, поэтому они не выглядят так, как будто они были созданы.
Это дубликат этого вопроса , но у него нет ответа, который мне подходит.