猫鼬 - 当所有字段都等于新条目时避免重复
Posted
技术标签:
【中文标题】猫鼬 - 当所有字段都等于新条目时避免重复【英文标题】:mongoose - avoid duplicate when all fields are equal to new entry 【发布时间】:2019-01-07 00:50:10 【问题描述】:所以我的节点应用程序中有一个猫鼬模式,其中包含两个字段:tag 和 task,我希望能够保存两个属性组合的条目还不存在。
例如:我的数据库已经有以下条目:
标签: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
【讨论】:
以上是关于猫鼬 - 当所有字段都等于新条目时避免重复的主要内容,如果未能解决你的问题,请参考以下文章