如果标签存在,mongodb php upsert

时间:2012-08-25 21:15:11

标签: php mongodb

我正在尝试更新并在所有具有'标题'

的条目中插入名为'已启用'的记录
{
     "_id": ObjectId("50310c48ba76882419000001"),
     "title": "XKCD",
     "online": true
}   
{
     "_id": ObjectId("50310c48ba76882419000000"),
     "title": "Calvin and Hobbes",
     "author": "Bill Watterson"
}   

这是我的尝试,但我似乎遇到了一些问题 当我这样做时,没有任何反应 任何帮助将不胜感激

$mongo = new Mongo();
$db = $mongo->mydb;
$col = $db->members;

$query = array('title'=>array('$exist' => true));
$col->update($query, array('enabled' => '0' ));

1 个答案:

答案 0 :(得分:3)

我认为你的问题存在于此:

$col->update($query, array('enabled' => '0' ));

这实际上会用_id替换除了不可归因的enabled: 0字段以外的所有字段。试试$set opreator:

$col->update($query, array('$set' => array('enabled' => '0' )), array('multiple' => true));

http://www.mongodb.org/display/DOCS/Updating#Updating-%24set