MongoDB PHP7,如何通过ID更新文档?

3
我升级到PHP7时,从mongo迁移到了mongodb扩展。唯一我无法解决的问题是按ID更新文档。Mongo以前有MongoId类来解析字符串中的ID,但我找不到Mongodb的等效类。
这就是我目前的情况,但它不起作用。
$collection->updateOne(['_id' => '567eba6ea0b67b21dc004687'], ['$set' => ['some_property' => 'some_value']]);   

“不工作” 是什么意思? - styvane
它不会更新文档,就好像它找不到它一样。 - Eric
mongodb 扩展可以单独使用,但主要是为了与用户空间的 mongo-php-library 一起使用:https://github.com/mongodb/mongo-php-library - Andrea
是的,updateOne来自那个库。 - Eric
1个回答

16

_id 应该是 BSON 的一个实例:

$collection->updateOne(['_id' => new \MongoDB\BSON\ObjectID('567eba6ea0b67b21dc004687')], ['$set' => ['some_property' => 'some_value']]);   

假设我有一个数组 $array,它是文档的副本,除了进行了一些修改。如果我将该数组作为第二个参数发送,那么能否更新原始文档? - Lixus
1
@Lixus 根据文档,它应该可以工作:https://docs.mongodb.com/manual/reference/operator/update/set/ - malcolm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接