覆盖以前的文件的合成索引

我想创build一个模型MongoDb使用mongoose,我想确保只有一个文件存在一个特定的用户和文件。

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}) 

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

有什么办法可以configurationMongoDB覆盖文档,而不是引发exception?

如果文件不存在,这个命令会创build一个新的

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