mongoose创建唯一索引

有如下Schema
var Schema = new mongoose.Schema({
category : String,
code : String,
programId : String,
},{
collection : 'alm_config'
});

创建唯一索引
Schema.index({code: 1, programId: 1},{unique: true});
创建唯一稀疏索引(允许空值)
Schema.index({code: 1, programId: 1},{sparse:true,unique: true});
创建索引时添加条件(3.2以后才能用)
Schema.index({code: 1, programId: 1},{unique: true,
partialFilterExpression: { programId: { $exists: true}}});
详细介绍:https://docs.mongodb.com/v3.4/core/index-unique/#unique-index-and-missing-field

监听索引失败的原因
AlmConfig = mongoose.model('AlmConfig',require('./alm_config'));
AlmConfig.on('index', function(err) { console.log(err) });

关于Sparse indexes
允许建立索引的列值不存在,在查询时会忽略不存在该列的行。
详细介绍:https://docs.mongodb.com/manual/core/index-sparse/

你可能感兴趣的:(mongoose创建唯一索引)