如何在PHP和MongoDB中使用updateMany查询
在MongoDB 3.2中,他们使用一个查询更新多个文档,如下所示如何在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网站,该查询没有此功
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,谢谢你的回答。让我检查一下并更新给你。虽然缺少文档,但它对我有效。请不要只是发布指向某个工具或库的链接作为答案。至少在答案中说明它是如何解决问题的。