为什么MongoDB在使用findOneAndUpdate()更新新文档时返回值:null错误



在第一次查询新库存时,当文档不存在时,它会添加新文档,但随后返回值为null的错误。我遵循了文档并输入了"返回新文档":true,但它仍然不起作用。。

当新文档扰乱新文档时,我如何返回它?

let doc = await col.findOneAndUpdate(
{'stock': stock}, 
{'$addToSet': {'likes': ip}}, 
{'upsert': true, 'returnNewDocument': true}
);

返回以下错误

Updated Document: {"lastErrorObject":{"n":1,"updatedExisting":false,"upserted":"5e5dbb8bf12e9343ec7a9b88"},"value":null,"ok":1,"$clusterTime":{"clusterTime":"6799797218074165249","signature":{"hash":"sd5UrKaesKhMqtQEHBKTlE4Lovw=","keyId":"6794816602199031810"}},"operationTime":"6799797218074165249"}

p.S.Sry不知道如何包装代码以便正确显示。接受建议。

只需将阶段$addToSet更改为$set

try {
db.grades.findOneAndUpdate(
{ "stock" : stock },
{ $set: { "likes" : ip}},
{ upsert:true, returnNewDocument : true }
);
}
catch (e){
print(e);
}

现在使用这个代码。。。

相关内容

  • 没有找到相关文章