【问题标题】:PHP MongoDB update multiple documents using $in/$orPHP MongoDB 使用 $in/$or 更新多个文档
【发布时间】:2011-10-28 19:49:54
【问题描述】:

我无法弄清楚如何在 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)
);

【问题讨论】:

  • 更新文档 ID 还是根据文档 ID 进行更新?如果是后者,具体更新什么?你能显示一些代码吗?
  • 所以我想更新文档 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));

标签: php mongodb mongodb-php


【解决方案1】:

我认为您的问题是,只有一个文档得到更新,对吧?如果是这种情况,您必须在更新方法的第三个参数(选项参数)中指定另一个设置:

multiple => true

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

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

【讨论】:

  • 是的,PHP 驱动程序使用了不同的参数名称。在 mongo 默认 api 中,仅调用该选项 multi
猜你喜欢
  • 1970-01-01
  • 2019-05-25
  • 2023-03-18
  • 2019-05-22
  • 1970-01-01
  • 2017-09-22
  • 2019-09-19
  • 2020-09-05
  • 1970-01-01
相关资源
最近更新 更多