我正在使用MongoDB和PHP,如果它符合某些标准,我想更新文档中的所有字段。
每个文档都有一个标题 - 如果标题匹配,我想用新文档的值更新该文档中的所有字段。
这是一些伪代码:
if doc.title == newdoc.title
replace doc with newdoc
else
insert newdoc
我将如何在MongoDB中进行此操作?
答案 0 :(得分:0)
如何进行更新以替换整个文档的示例如下:
update(array("username" => "joe"), array('$set' => array("twitter" => "@joe4153")));
您对MongoDB 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));