Уникальный индекс не работает с Mongoose / MongoDB

У меня проблема с созданием уникальных индексов с помощью 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);
    });
  }...

var Something = new Schema({
  objectId          : ObjectId,
  name              : { type : String, index: { unique: true }}, 
  url               : { type : String, index: { unique: true }},
...etc
mongoose.model('Something', Something);

Вывод Mongo

 [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, индексы не отображаются, поэтому они не выглядят так, как будто были созданы.

Это дубликат этого вопроса , но у него нет ответа, который подходит мне.

9
задан Community 23 May 2017 в 10:28
поделиться