【发布时间】:2021-07-14 17:21:34
【问题描述】:
我希望更新对象数组中每个对象的属性,但如果某些对象不存在,请插入该对象。
目前我使用“upsert”,当没有文档与查询匹配时创建一个新文档,不幸的是它正在用我的整个列表替换单个项目。
值得一提的是,我正在使用 mongoist 来执行异步请求。
我的代码:
this.tokenArray = [
{ token: "654364543" },
{ token: "765478656" },
{ token: "876584432" },
{ token: "125452346" },
{ token: "874698557" },
{ token: "654364543" }
]
database.upsertDatebaseItem(this.tokenArray.map(x => { return x.token }), { valid : true }, 'Tokens');
async upsertDatebaseItem(itemKey, itemValue, collectionName) {
try {
await this.database[collectionName].update({ token : { $in: itemKey}}, { $set: itemValue }, {upsert : true} , {multi : true});
} catch (error) {
console.log(`An error occurred while attempting to update ${itemType} to the database: ${error}`);
return false;
}
}
【问题讨论】:
标签: javascript node.js mongodb