在MongoDB中,有没有一种方法可以更新许多文档,并在一次调用中获得修改过的文档



我正在使用MongoJava驱动程序,但仔细查看Mongo的文档,它看起来并不是特定于驱动程序的。

update(filter, update)可以更新多个文档,但返回的WriteResult只提供标志/计数。

findOneAndUpdate(filter, update)返回被修改的实际文档,但一次只能更新一个文档。

没有办法在一个电话里做到这一点吗?如果没有,客户端将不得不调用find(filter),然后调用update(filter, update),然后调用具有与在初始查找中获得的ID匹配的新过滤器的find(...)(因为更新可能会更改初始过滤器中的文档值(。

有更好的方法吗?

我不知道有任何返回游标的写命令,这基本上就是您所要求的,我也没有在驱动程序源代码中看到任何相关内容。

最新更新