4

我已经在我的 Mac 上设置了 MongoDB,并且正在使用 PHP 与之通信。我已经为 Mongo 安装了 PHP 驱动程序,并且成功连接并从数据库中进行插入和选择。

我遇到的问题是,当我在 Mongo 中插入时,我看到了文档的 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 或我的操作系统有关。我使用 Brew 安装 Mongo 和 PECL 安装 mongo 驱动程序(pecl install mongo)。

为什么我在插入 Mongo 时会得到 2 个副本?

编辑:修正了 php 代码中的错字。谢谢 bcmcfc

4

1 回答 1

0

您应该尝试使用 upsert:

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

于 2012-10-29T16:13:54.753 回答