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

时间:2018-07-30 17:44:34

标签: javascript mongodb mongoose

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

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

  • {标签:标签1 ,任务:任务1 }
  • {标签:标签1 ,任务:任务2 }
  • {标签:标签2 ,任务: task1 }

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

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

1 个答案:

答案 0 :(得分:2)

使用唯一化合物索引

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

有关更多信息,请访问Link