有什么方法可以在upsert之后获取record _id吗?
我看过这篇文章(How to insert a doc into mongodb using mongoose and get the generated id?),但这篇文章只针对插入,而不是更新。
此外,使用MongoDB,您可以使用getlasthorror(https://groups.google.com/forum/?fromgroups=#!topic/mongoose-tags/ehZ 11 QY-OUw),但Mongoose不提供对它的访问(https://groups.google.com/forum/?fromgroups=#!topic/mongoose-wg/pSv6WrasvWg)
谢谢
4条答案
按热度按时间olmpazwi1#
使用Mongoose的findOneAndUpdate方法和选项对象中的
upsert: true
。fafcakar2#
如果您希望返回更新的文档,并且在它不存在并被更新的情况下,则返回新文档。下面是您需要设置的选项。
将new:true设置为选项:
options = { upsert: true, new: true };
来源:基于Jamiel的评论,我添加了他的评论作为答案,因为当没有文档存在并由upsert创建时,我很难找到那个_id(我试图创建自己的扩展方法)。
pobjuy323#
另一种可能的承诺:
其中
result
为:qyzbxkaa4#
有时我们需要删除一些参数,如id。>._doc将获取更新/插入的数据,您可以使用js delete操作符删除id