MongoDB更新所有字段如果文档存在PHP

时间:2014-03-01 14:55:39

标签: javascript php mongodb

我正在使用MongoDB和PHP,如果它符合某些标准,我想更新文档中的所有字段。

每个文档都有一个标题 - 如果标题匹配,我想用新文档的值更新该文档中的所有字段。

这是一些伪代码:

if doc.title == newdoc.title
    replace doc with newdoc
else
    insert newdoc

我将如何在MongoDB中进行此操作?

2 个答案:

答案 0 :(得分:0)

如何进行更新以替换整个文档的示例如下:

update(array("username" => "joe"), array('$set' => array("twitter" => "@joe4153")));

您对MongoDB PHP驱动程序的熟悉程度如何?如果您是新手,我会推荐以下资源/教程:

  1. http://blog.mongodb.org/post/24960636131/mongodb-for-the-php-mind-part-1
  2. http://www.php.net/manual/en/book.mongo.php
  3. http://www.php.net/manual/en/mongo.tutorial.php
  4. http://www.php.net/manual/en/mongo.updates.php

答案 1 :(得分:0)

我没有将'upsert'标志设置为true - 否则会插入一个带有新_id的新文档......

http://docs.mongodb.org/manual/tutorial/insert-documents/

如果文档的名称值为'johnsmith',则下面的代码会覆盖整个文件...

$collection->update(array('name' => 'johnsmith'), 
                    array('name' => 'bobsmith, 'occupation' => 'plumber'),
                    array('upsert'=>true));