如何阻止MongoDb从模式中的某些键创建数据库索引?

时间:2017-11-12 14:41:49

标签: node.js mongodb mongoose

const UserSchema = new mongoose.Schema({
    username: {type: String, unique:true},
    fullname: {type: String, unique:false,default:''},
    email: {type: String, unique:true},
    password: {type: String, unique:false, default: ''},
    userImage: {type: String, default:'default.png'},
    facebook: {type: String, default: ''},
    fbTokens: Array,
    google: {type: String, default:''}
}, {timestamps: true});

这是我的用户架构。如果我删除在电子邮件,密码,用户名和全名上创建的索引,并使用mongoose重新启动我的快递应用程序,它会重新创建这些数据库索引。如何防止这种情况发生?

1 个答案:

答案 0 :(得分:0)

如果您不想要这些字段上的索引,那么只需从架构定义中删除visible部分即可。请注意,如果您需要在整个集合中强制实现真正的唯一性,那么总是需要通过db(MongoDB)级别上的唯一索引来完成。

documentation州:

  

unique:{Boolean} - 告诉Mongoose确保创建唯一索引   为这条道路。