如何在PHP和MongoDB中使用updateMany查询

如何在PHP和MongoDB中使用updateMany查询,php,mongodb,database,Php,Mongodb,Database,在MongoDB 3.2中,他们使用一个查询更新多个文档,如下所示 try { db.inspectors.updateMany( { "inspector" : "J. Clouseau", "Sector" : 4 }, { $set: { "Patrolling" : false } }, { upsert: true } ); } catch (e) { print(e); } 我已经检查了MongoDB的php网站,该查询没有此功

在MongoDB 3.2中,他们使用一个查询更新多个文档,如下所示

try {
   db.inspectors.updateMany(
      { "inspector" : "J. Clouseau", "Sector" : 4 },
      { $set: { "Patrolling" : false } },
      { upsert: true }
   );
}
catch (e) {
   print(e);
}
我已经检查了MongoDB的php网站,该查询没有此功能。

您可以使用以下示例:

$model = new MongoDB_DataObject('inspectors');

$model->Patrolling = false;

$model->whereAdd("inspector = 'J. Clouseau' and Sector = 4");

$model->update();

请注意,因为有两个版本的php mongodb驱动程序。Mongodb 3.2驱动程序版本,与(现在已弃用)不同

此外,如php.net上的mongodb.so文档所述:

应用程序开发人员应考虑使用该扩展与[[…] /P>结合使用。 这位官员在新的mongodb.so驱动程序的基础上提供了常用的mongodb CRUD函数,并表示您可以像在javascript中那样使用

updateMany()

$updateResult = $collection->updateMany(
    ["inspector" => "J. Clouseau", "Sector" => 4 ],
    ['$set' => ['Patrolling' => false]]
);

printf("Matched %d document(s)\n", $updateResult->getMatchedCount());
printf("Modified %d document(s)\n", $updateResult->getModifiedCount());

@pr0metheus,谢谢你的回答。让我检查一下并更新给你。虽然缺少文档,但它对我有效。请不要只是发布指向某个工具或库的链接作为答案。至少在答案中说明它是如何解决问题的。