我经常使用findOneAndUpdate
根据多个条件获取和更新文档,例如:
const { value } = await collection.findOneAndUpdate(
{ _id: "abc", name: "xyz" },
{ $set: { ... } }
);
如果没有与查询匹配的文档,我想知道为什么匹配失败,因此我可以向用户返回有用的错误消息。例如,如果不存在带有_id == "abc"
的文档,我想返回诸如“找不到文档”之类的消息。如果它确实存在但具有不同的name
,则消息应为“名称不正确”。目前,我只能通过检查返回的value
来确定entire查询是否匹配。
我当然可以调用findOne({ _id: "abc" })
,检查name
是否具有正确的值,然后再调用updateOne
,但我更喜欢一个原子操作。
是否可以执行此操作,或者在这种情况下是否必须使用事务?
我经常使用findOneAndUpdate根据多种条件获取和更新文档,例如:const {value} =等待collection.findOneAndUpdate({_id:“ abc”,name:“ xyz”},{$ set:{.. 。...
根据实施说明,findOneAndUpdate()
返回Collection~findAndModifyCallback
,即收集结果回调。此回调内部有两个字段
您可以尝试更新操作,并且如果返回的值为null
(找不到匹配项),请向应用程序用户发送一条消息。