2015-12-26 182 views
2

当我升级到PHP7时,我从mongo移至mongodb扩展名。唯一我无法弄清楚的是按id更新文档。 Mongo过去有MongoId类来解析字符串中的id,但我找不到Mongodb的任何等价物。Mongodb php7,通过id更新文档?

这是我在哪里,并且不工作

$collection->updateOne(['_id' => '567eba6ea0b67b21dc004687'], ['$set' => ['some_property' => 'some_value']]); 
+0

* ? – styvane

+0

它不会更新文档,就像它没有找到它 – Eric

+0

'mongodb'扩展名虽然可以自己使用,但是可以与用户空间'mongo-php-library'一起使用:https: //github.com/mongodb/mongo-php-library – Andrea

回答

6

_id应该是BSON的实例:你说的*不起作用的意思

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

假设我有一个数组'$ array',它是文档的一个副本,除了一些修改,如果我发送该数组作为第二个参数将工作来更新原始文档? – Lixus

+0

@Lixus根据文档,它应该工作:https://docs.mongodb.com/manual/reference/operator/update/set/ – malcolm