2015-12-26 7 views
2

Я переехал из mongo в mongodb расширение, когда я обновился до PHP7. Единственное, что я не могу понять, это обновить документ по id. Раньше у Mongo был класс MongoId для анализа идентификатора из строки, но я не могу найти эквивалент для 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

Смежные вопросы