我有以下SQL,我想知道MongoDB的等价物。
update tblName set kwatt = kwatt/3600000 where kwatt is not null.
注意:
我知道我们可以在服务器中编写JS函数并完成这项工作,我希望这可以通过PHP驱动程序完成,我不知道如何轻松完成。
请帮忙。
答案 0 :(得分:3)
实际上,您可以同时将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)"}}});
这只是为了想法,我没有测试它..
答案 1 :(得分:1)
您无法在一个数据库操作中执行此操作。您需要先查询相关行,然后对每一行执行其他更新操作。这不可能 使用一个数据库操作中的结果行的值更新文档的值。其余的由你自己决定。