当来自我的csv文件的输入有两行或更多行具有相同的电子邮件地址时,我遇到了一些findOneAndUpdate问题。电子邮件地址在我的模型中设置为唯一,我认为findOneAndUpdate可以让我处理我的csv文件中的重复。代码如下。请阅读here,因为查询中的字段(在本例中为电子邮件)也是我想要创建的字段之一,以防未找到记录。我不确定这是不是真的。无论如何,电子邮件是我的标识符,所以它必须在那里。
更多地解释行为:
代码:
{ MongoError: E11000 duplicate key error collection: db.accounts index: email_1 dup key: { : "xxxxx@yahoo.com" }
提前感谢您的帮助!
答案 0 :(得分:1)
This post表明搜索和保存不存在的文档不是原子的,这意味着在搜索和保存之间,另一个查询可能已经为相同的搜索条件产生了未找到的结果。似乎唯一的解决方案是确保处理重复的密钥错误,例如,通过将MongoDB操作重新应用到被抛出的文档。
我现在会遵循这个解决方案。如果有人有不同的处理方法,请告诉我。谢谢!