4

Mac に MongoDB をセットアップし、PHP を使用して通信しています。Mongo 用の PHP ドライバーをインストールし、DB に正常に接続して挿入と選択を行っています。

私が抱えている問題は、Mongo に挿入すると、挿入関数を 1 回しか呼び出していないにもかかわらず、ドキュメントのコピーが 2 つ表示されることです。

phpコードは次のとおりです。

   <?php
    $mongoDB = new Mongo();
    $db = $mongoDB->blog;
    $collection = $db->posts;
    $document = array( "title" => "cat with a hat", "body" => "once upon a time a cat with a hat ...");
    $collection->insert($document);

データベースの結果は次のとおりです。

> db.posts.find()
{ "_id" : ObjectId("5089ff5aaa3479c97300000f"), "title" : "cat with a hat", "body" : "once upon a time a cat with a hat ..." }
{ "_id" : ObjectId("5089ff5aaa3479c973000011"), "title" : "cat with a hat", "body" : "once upon a time a cat with a hat ..." }

これが PHP ドライバー、Mongo、Apache、または私の OS に問題があるかどうかはわかりません。Brew を使用して Mongo をインストールし、PECL を使用して mongo ドライバーをインストールしました (pecl install mongo)。

Mongo に挿入すると 2 つのコピーが取得されるのはなぜですか?

編集: PHP コードのタイプミスを修正しました。ありがとうございます

4

1 に答える 1

0

アップサートを使用してみてください。

http://php.net/manual/en/mongocollection.insert.php

于 2012-10-29T16:13:54.753 に答える