fab*_*fab 8 javascript asynchronous upsert mongoose mongodb
当来自我的 csv 文件的输入有两行或更多行具有相同的电子邮件地址时,我在使用 findOneAndUpdate 时遇到了一些问题。电子邮件地址在我的模型中设置为唯一,我认为 findOneAndUpdate 可以让我处理 csv 文件中的重复。代码如下。在这里阅读这是因为我的查询中的字段(在本例中为电子邮件)也是我要创建的字段之一,以防找不到记录。我不确定这是否属实。无论如何,电子邮件是我的标识符,所以它必须在那里。
更详细地解释这种行为:
{ MongoError: E11000 duplicate key error collection: db.accounts index: email_1 dup key: { : "xxxxx@yahoo.com" }代码:
for (let i = 0; i < accounts.length; i++) {
let query = {'email': accounts[i].email};
let accountHolderDoc = {
email: accounts[i].email,
name: {
first: accounts[i].accountHolderFName,
last: accounts[i].accountHolderLName,
},
};
promise = AccountHolder
.findOneAndUpdate(
query, {$set: accountHolderDoc}, {upsert: true, new: true})
.then(function(accountHolder) { ... })
.catch( ... );
...
}
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助!
| 归档时间: |
|
| 查看次数: |
3851 次 |
| 最近记录: |