在某种意义上,默认的“保存”操作在MongoDB中似乎是异步的。似乎当客户端保存文档时,它通常会立即从服务器收到成功的响应,即使该操作尚未应用于数据库(更不用说已提交到磁盘)。
(我基于这个模型来了解save()
在PHP客户端documentation上的行为,其中包含一个可选参数 - safe
- 我认为 < / em>确保服务器已经处理了保存,而不仅仅是由服务器接收,并且由Mathias Stearn blog post comment处理,他说“默认情况下'提交'只是意味着应用于mmaped结构,但它也可能意味着复制或刷新到磁盘。“)
我可以看到save()
可能达到的几个级别的“成功”,包括:(a)客户发送; (b)由服务器收到; (c)服务器承诺内部数据结构; (d)由服务器发送给n个副本; (e)承诺使用磁盘。
safe
模式的等价物。)此外,发布save()
的客户以及任何其他客户端的行为是否有任何差异?即MongoDB是否支持自己读写或类似?
答案 0 :(得分:1)
所有这些选项都是通过getLastError命令完成的。这基本上就是“安全模式”的内幕。这个页面应该有用: http://www.mongodb.org/display/DOCS/getLastError+Command