0

我如何检查文档写入是否完成,因为 mongodb 是基于“一劳永逸”的哲学?

我可以写一个这样的程序:

db.addresses.insert(....)

db.addresses.find(filter...

第二条语句 find 是基于第一步中插入的文档。

在对其进行某些/任何操作之前,我们如何检查文档是否已写入?

4

1 回答 1

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); 
于 2012-03-22T07:54:28.580 回答