我有一个模特
var ReferenceSchema = mongoose.Schema({
ownerId:{
type:Number,
required:true,
index: true
},
boardId:{
type:Number,
index:true
},
boardCommentId:{
type:Number,
index: true
},
postId:{
type:Number,
index:true
},
postCommentId:{
type:Number,
index: true
}
});
存储不同的先前创建的引用。它可以是不同类型的参考,应该是不同值的组合:
ownerId - 总是
boardId + boardCommentId 或 postId + postCommentId
我有这个综合索引:
ReferenceSchema.index({ ownerId: 1, postId: 1 }, { unique: true,sparse: true });
ReferenceSchema.index({ postId: 1, postCommentId: 1 }, { unique: true,sparse: true });
ReferenceSchema.index({ boardId: 1, boardCommentId: 1 }, { unique: true,sparse: true });
问题是,当我尝试添加新文档时,即使E11000 duplicate key error index: db.references.$ownerId_1_postId_1 dup key: { : 33390409, : null }
也出现错误sparse:true
。我是否错误地使用了稀疏,或者我需要使用复合索引和稀疏的另一种方法?