Node.js 如何在MongoDB中更新文档而不插入重复条目?

Node.js 如何在MongoDB中更新文档而不插入重复条目?,node.js,mongodb,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 dataModi

我收藏了这些文件

{"_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”
字段的重复条目吗?

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

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