猫鼬 - 当所有字段都等于新条目时避免重复

Posted

技术标签:

【中文标题】猫鼬 - 当所有字段都等于新条目时避免重复【英文标题】:mongoose - avoid duplicate when all fields are equal to new entry 【发布时间】:2019-01-07 00:50:10 【问题描述】:

所以我的节点应用程序中有一个猫鼬模式,其中包含两个字段:tagtask,我希望能够保存两个属性组合的条目还不存在。

例如:我的数据库已经有以下条目:

标签:tag1,任务:task1 标签:tag1,任务:task2 标签:tag2,任务:task1

我希望能够创建 tag:tag2, task:task2,但不能创建 tag:tag1, task: task1,所以我想我不能在任何这些字段中使用 primary 或 unique,因为它们可以重复,除非它们的组合已经存在

那么我应该使用哪个查询来保存?还是我应该先找到它是否已经存在?

【问题讨论】:

你应该使用复合索引***.com/questions/12573753/… 你可以update(obj, obj)upsert: true 【参考方案1】:

使用唯一的复合索引

db.users.createIndex(  "tag": 1, "task": 1 ,  unique: true  )

欲了解更多信息,请访问Link

【讨论】:

以上是关于猫鼬 - 当所有字段都等于新条目时避免重复的主要内容,如果未能解决你的问题,请参考以下文章