0

mongodbは「ファイアアンドフォーゲット」の哲学に基づいているため、ドキュメントの書き込みが完了したかどうかを確認するにはどうすればよいですか?

このようなプログラムを書くことはできますか?

db.addresses.insert(....)

db.addresses.find(filter...

2番目のステートメントfindは、最初のステップで挿入されたドキュメントに基づいています。

ドキュメントに対して何らかの操作を行う前に、ドキュメントが書き込まれていることをどのように確認できますか?

4

1 に答える 1

1

その場合は「セーフモード」で書く必要があります。

セーフモードが有効になると、ドライバーは書き込み操作を実行してから確認を求めます。これにより、dbリクエストのスループットが本質的に2倍になり、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 に答える