我正在尝试使用 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 来覆盖文档而不是引发异常?
最佳答案
如果文档不存在,此命令将创建新文档
collection.update({file:2112,user:21421}, {hasSeen:true}, {upsert:true});
关于javascript - 复合索引覆盖以前的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26737796/