我想在nodejs中创建和更新项目列表,如果项目已经存在则更新该项目,如果不存在则将其添加到数据库中,如果项目已经存在于数据库中而不存在于列表中,则从数据库中删除该项目。
在我第一次将此列表发送到服务器时:
intrestName: [
{ name: '11' },
{ name: '22' },
{ name: '33' },
{ name: '44' }]
在第一次我想添加所有该项目以保存在数据库中的代码:
await IntrestModel.updateMany({},{$set:{...item.intrestName}}, { upsert: true });
但它没有在数据库中添加任何内容。
有什么问题?我怎样才能解决这个问题????
您必须使用猫鼬的insertmany
方法。UpdateMany
用于数据库中已有的更新记录,但不适合您的情况
https://mongoosejs.com/docs/api.html#model_model.insertmany
编辑
intrestNames = [
{ name: '11' },
{ name: '22' },
{ name: '33' },
{ name: '44' }
]
await Promise.all(
intrestNames.map((intrestName) => {
return IntrestModel.updateOne(intrestName, {$set: intrestName}, { upsert: true })
})
)