PHP MongoDB, обновить документ без стирания остальных - PullRequest
7 голосов
/ 11 апреля 2011

Я пытаюсь обновить документ на монго, используя PHP и функцию update (). Однако, когда я делаю это, он заменяет ВЕСЬ документ значением, которое я хотел обновить. Как я могу это исправить?

Код, который я написал до сих пор: http://twaddlr.com/view/73 (Прокрутите вниз до функции «update». Это оболочка базы данных, которую я пишу для своего сайта)

1 Ответ

16 голосов
/ 11 апреля 2011

Ключ должен использовать $set в обновлении, например, вместо этого (извините, используя синтаксис JavaScript здесь, не уверен насчет точного синтаксиса драйвера PHP):

db.my_collection.update({hello: "world"}, {foo: "bar"})

вы делаете

db.my_collection.update({hello: "world"}, {$set: {foo: "bar"}})

Если вы используете $set, будут обновлены только указанные вами свойства, весь документ не будет заменен.

Подробнее об этом можно прочитать в документации здесь: http://www.mongodb.org/display/DOCS/Updating#Updating-ModifierOperations

Редактировать: глядя на ваш код, это именно то, что вы делаете в методе addRow.Просто сделайте то же самое в update.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...