调用未定义的方法MongoDB :: update()

时间:2019-05-06 13:57:22

标签: php mongodb mongodb-query

在通过update使用PHP语句时表示收到错误。

  

调用未定义的方法MongoDB :: update()

我正在使用mongo-php-driver驱动程序来连接MongoDBPHP

我的代码

$result = $this->mongo_db->update('table_name',array('user_type'=>"D"),array('$set'=>array('account_balance'=>0)),array('upsert'=>true));

我的MongoDB参考链接是https://docs.mongodb.com/manual/reference/method/db.collection.update/

2 个答案:

答案 0 :(得分:0)

嗨,我使用的是updateMany而不是update。对我来说很好。

$result = $this->mongo_db->updateMany('table_name',array('user_type'=>"D"),array('$set'=>array('account_balance'=>0)),array('upsert'=>true));

答案 1 :(得分:0)

来自documentation

使用MongoDB\Collection::updateOne()方法更新与过滤器匹配的单个文档。 MongoDB\Collection::updateOne()返回一个MongoDB\UpdateResult对象,您可以使用该对象访问有关更新操作的统计信息。

<?php

$collection = (new MongoDB\Client)->test->users;
$collection->drop();

$collection->insertOne(['name' => 'Bob', 'state' => 'ny']);
$collection->insertOne(['name' => 'Alice', 'state' => 'ny']);
$updateResult = $collection->updateOne(
    ['state' => 'ny'],
    ['$set' => ['country' => 'us']]
);

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

更多内容:

MongoDB PHP库和基础的mongodb extensionlegacy mongo extension具有显着的API区别。请阅读upgrade guide了解更多详情。