2015-12-26 181 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