与使用现有字段值更新记录的UPDATE SQL相同的MongoDB是什么

时间:2011-12-05 05:46:46

标签: php mongodb

我有以下SQL,我想知道MongoDB的等价物。

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

注意:

我知道我们可以在服务器中编写JS函数并完成这项工作,我希望这可以通过PHP驱动程序完成,我不知道如何轻松完成。

请帮忙。

2 个答案:

答案 0 :(得分:3)

实际上,您可以同时将findAndModifystored 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)"}}});

这只是为了想法,我没有测试它..

Stored Javascript Sample

答案 1 :(得分:1)

您无法在一个数据库操作中执行此操作。您需要先查询相关行,然后对每一行执行其他更新操作。这不可能 使用一个数据库操作中的结果行的值更新文档的值。其余的由你自己决定。