javascript - 复合索引覆盖以前的文档

标签 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 来覆盖文档而不是引发异常?

最佳答案

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

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

关于javascript - 复合索引覆盖以前的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26737796/

相关文章:

node.js - 为什么这个函数不返回结果?

javascript - IE8 数据集的替代方案(按数据属性对元素进行排序)

javascript - 什么时候以及为什么创建自定义异常是好的?

javascript - 图表js : hide some labels in the legend

MongoDB - 一个使用索引的集合

java - 如何在mongotemplate中使用orOperator

javascript - 匹配任何不以 .json 结尾的正则表达式

javascript - 如何从嵌入标签中获取 svg 元素?

node.js - Google 身份验证挂起等待响应

mysql - 返回 Node 中的数据库值