我如何检查文档写入是否已完成,因为mongodb基于的理念 “火与忘记”?
我可以写一个这样的程序:
db.addresses.insert(....)
db.addresses.find(filter...
第二个语句find基于第一步中插入的文档。
在对文档执行某些操作之前,我们如何检查文档是否已写入?
答案 0 :(得分:1)
然后你应该以“安全模式”写作。
激活安全模式后,驱动程序将执行写入操作,然后要求确认。这实际上会使您的数据库请求吞吐量翻倍,并增加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);