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

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

【讨论】:

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

当涉及的字段之一为 NULL 时,MySQL 错误地允许重复条目

从ViewModel设置条目的焦点

如何使用猫鼬防止重复文件mongodb

修改猫鼬对象文字结果不起作用[重复]

WordPress小部件中的重复表单字段?

MongoDB:如何为集合中的每个文档设置一个等于另一个字段值的新字段[重复]