我正在从外部api获取数据,并且如果它们尚不存在,我想插入多个记录。我正在创建这样的对象数组:
data=[
{
match_id: 212167781,
player1Id: 129753806,
player2Id: 129753811,
player1Details: '5f070c8f79f62c00042b0cd8',
player2Details: '5f3267fe6a0f891b3604b999'
},
{
match_id: 212167782,
player1Id: 129753799,
player2Id: null,
player1Details: '5f070ade79f62c00042b0cd6'
}
]
例如,现在如果第二条记录不存在,那么我希望将其插入,并且我尝试了upsert,但是什么也没有发生。请帮忙。
答案 0 :(得分:1)
您应该能够使用一个简单的循环并将Model.findOneAndUpdate
与upsert option结合使用:
async function upsertMany(data) {
for(const entry of data) {
await YourModel.findOneAndUpdate(entry, entry, { upsert: true });
}
}
// call this with your data-array
await upsertMany(data);