javascript – 唯一索引不适用于Mongoose / MongoDB

前端之家收集整理的这篇文章主要介绍了javascript – 唯一索引不适用于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,...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时,索引不会出现,所以它们看起来不像它们被创建.

这是this question的重复,但它没有一个适用于我的答案.

解决方法

一个不涉及擦除数据库解决方案是手动删除任何重复的操作,然后按照以下方式运行:
db.users.ensureIndex({email:1},{unique:true,sparse:true});

从蒙古壳

猜你在找的JavaScript相关文章