轻便摩托车(Ruby mongodb 驱动程序)的remove_all操作是后台操作吗?



它会立即返回,我不完全确定预期的行为是什么。它会在后台删除吗?

http://mongoid.org/en/moped/

在Moped中执行此操作的代码肯定不是异步的,它将在操作发送到MongoDB时(默认情况下,可能在等待数据库响应时)阻塞。

https://github.com/mongoid/moped/blob/master/lib/moped/query.rb#L290-L307https://github.com/mongoid/moped/blob/master/lib/moped/node.rb#L466-L468

然而,正如Chris Heald已经暗示的那样,如果您使用w=0的写入关注点(所谓的"即发即弃"模式),则该模式将告诉Moped不要等待来自服务器的响应。你不会收到remove_all成功完成的确认,但你可以通过这种方法有效地将工作后台到你的MongoDB服务器。

以下是关于MongoDB的写入问题如何处理未确认的写入的更多信息:http://docs.mongodb.org/manual/core/write-concern/#unacknowledged

最新更新