如何在MongoDB中更新文档而不插入重复项?

时间:2019-04-30 09:34:31

标签: node.js mongodb

我的收藏夹中有这些文档。

{"_id": 1, "name": "Banana, "quantity": 3}
{"_id": 2, "name": "Apple, "quantity": 4}
{"_id": 3, "name": "Orange, "quantity": 5}

现在,我需要编辑集合中的第二个文档。

var doc = {"_id": 2}
var updateQuery = {"_id": 2, "name": "Banana", "quantity": 4}
var dataModified = { $set: updateQuery };

并使用updateOne查询,

db.collection.updateOne(doc, dataModified) 

这很好。但这会在文档中添加“ 香蕉”的重复条目。像这样:

{"_id": 1, "name": "Banana, "quantity": 3}
{"_id": 2, "name": "Banana, "quantity": 4}
{"_id": 3, "name": "Orange, "quantity": 5}

那么无论如何,我可以在更新文档时找出/限制"name"字段的重复条目吗?

1 个答案:

答案 0 :(得分:2)

您可以在name字段上create unique index,当您尝试插入重复的值时会出现异常:

db.members.createIndex( { "name": 1 }, { unique: true } )