我如何检查文档写入是否完成,因为 mongodb 是基于“一劳永逸”的哲学?
我可以写一个这样的程序:
db.addresses.insert(....)
db.addresses.find(filter...
第二条语句 find 是基于第一步中插入的文档。
在对其进行某些/任何操作之前,我们如何检查文档是否已写入?
我如何检查文档写入是否完成,因为 mongodb 是基于“一劳永逸”的哲学?
我可以写一个这样的程序:
db.addresses.insert(....)
db.addresses.find(filter...
第二条语句 find 是基于第一步中插入的文档。
在对其进行某些/任何操作之前,我们如何检查文档是否已写入?
那你应该在“安全模式”下写。
激活安全模式后,驱动程序将执行写操作,然后请求确认。这实际上使您的数据库请求吞吐量翻了一番,并增加了 Web 请求的处理时间,但您可以确保写入成功完成。
我发现了这个在 PHP 驱动程序中使用安全模式的例子(不知道它是否好用。我用 Ruby 编写代码,所以所有 PHP 在我看来都坏了:))
$insert_options = array("safe" => 2, "fsync" => TRUE);
$email_array = array( "_id" => new MongoId($index),
"email" => strtolower(trim($email)),
"verified" => 0,
"date" => date("Y-m-d G:i:s",time())
$this->mongo_db->email->insert($email,$insert_options);