PHP MongoDB使用$ in/$或更新多个文档

Eri*_*ons 5 php mongodb mongodb-php

我无法弄清楚如何在PHP中构建更新查询,以更新文档ID X,Y和Z.有没有人有这方面的经验?

$ids[] = array(
  new MongoId('4eaaf929498fe2c80300000c'),
  new MongoId('4eaaff24498fe2ba0900001f')
); 
$collection->update(
  array('_id' => array('$in' => $ids)),
  array('$set' => array("title"=>"test")),
  array("upsert" => true)
);
Run Code Online (Sandbox Code Playgroud)

aur*_*ora 10

我认为你的麻烦是,只有一个文件得到更新,对吗?如果是这种情况,则必须在update方法的第三个参数(options参数)中指定另一个设置:

multiple => true
Run Code Online (Sandbox Code Playgroud)

否则,它只会更新查询的第一个匹配项.请参阅更新方法的文档:

http://de.php.net/manual/en/mongocollection.update.php

  • 是的,PHP驱动程序使用不同的参数名称.在mongo默认api中,该选项仅被称为`multi` (2认同)