2

从某种意义上说,默认的“保存”操作在 MongoDB 中似乎是异步的。似乎当客户端保存文档时,它通常会立即从服务器收到成功的响应,即使该操作尚未应用于数据库(更不用说提交到磁盘)。

(我将此模型基于save()PHP 客户端文档的行为方式,其中包含一个可选参数safe——我认为它确实确保保存已由服务器处理,而不仅仅是由服务器接收,并且Mathias Stearn 的博文评论中说:“默认情况下,‘提交’仅意味着应用于 mmaped 结构,但也可能意味着复制或刷新到磁盘。”)

save()我可以看到一个可能达到的“成功”有几个级别,包括:(a)由客户发送;(b) 由服务器接收;(c) 由服务器提交给内部数据结构;(d) 由服务器发送到 n 个副本;(e) 提交到磁盘。

  • MongoDB 默认是做什么的?
  • 这个怎么调?safe(例如,我在 mongo shell 中找不到 PHP 模式的等价物。)

save()此外,对发出 的客户端和任何其他客户端的行为是否有任何不同?即 MongoDB 是否支持 read-your-own-writes 或类似的?

4

1 回答 1

2

所有这些选项都是使用 getLastError 命令完成的。这基本上就是“安全模式”在幕后所做的。此页面应该会有所帮助: http ://www.mongodb.org/display/DOCS/getLastError+Command

于 2010-07-09T15:12:33.150 回答