猫鼬中独特的sparced复合指数

时间:2015-12-09 19:45:31

标签: node.js mongodb mongoose

我有一个模特

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。我是否错误地使用了稀疏,或者我需要使用复合索引和稀疏的另一种方法?

0 个答案:

没有答案