Что такое MongoDB-эквивалент SQL-кода UPDATE, который обновляет запись с существующим значением поля - PullRequest
2 голосов
/ 05 декабря 2011

У меня есть следующий SQL, и я хотел бы знать эквивалент MongoDB.

update tblName set kwatt = kwatt/3600000 where kwatt is not null.

Примечание:

Я знаю, что мы можем написать функцию JS всервер и получить это сделано, я хочу, чтобы это было сделано из драйвера PHP, и я не уверен, как я могу сделать это легко.

Пожалуйста, помогите.

Ответы [ 2 ]

3 голосов
/ 05 декабря 2011

На самом деле вы можете сделать это, комбинируя findAndModify и stored javascript вместе ..

Создать хранимую функцию для разделения, как;

db.system.js.save({_id: "div",
             value: function (x, y) { return x/y; }});

Тогда в findAndModify что-то вроде;

findAndModify({query:{id:1},update:{$set:{id:"div(this.id,5)"}}});

Это просто для идеи, я не проверял ..

Пример сохраненного JavaScript

1 голос
/ 05 декабря 2011

Вы не можете выполнить это за одну операцию базы данных.Сначала необходимо запросить соответствующие строки, а затем выполнить дополнительную операцию обновления для каждой строки.Невозможно обновить значение документа значением строки результата в одной операции базы данных.Остальное зависит от вас и прямо вперед.

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