覆盖先前文档的复合索引

时间:2014-11-04 14:35:34

标签: javascript node.js mongodb mongoose

我正在尝试使用mongoose为MongoDb创建一个模型,我想确保只存在一个特定用户和文件的文档。

var FileStatusSchema = new mongoose.Schema ({
    file: mongoose.Schema.Types.ObjectId,
    user: mongoose.Schema.Types.ObjectId,
    hasSeen: { type: Boolean, default: false }
})

FileStatusSchema.index = ({file: 1, user: 1}, {unique: true})

现在,如果我尝试使用已存在的文件和用户组合保存文档,则会引发重复键错误。

我是否有某种方法可以将MongoDB配置为覆盖文档而不是引发异常?

1 个答案:

答案 0 :(得分:1)

如果文档不存在,此命令将创建新文件

 collection.update({file:2112,user:21421}, {hasSeen:true}, {upsert:true});
相关问题