繁体   English   中英

pymongo:使用另一个字段更新一个字段

[英]pymongo: updating a field using another field

我在这里看到了如何从mongo shell中完成此操作: MongoDB:使用同一文档中的数据更新文档

但是,我无法弄清楚如何使用python驱动程序执行此操作。 因此,我的目标是(相当于MySQL):

UPDATE coll SET field1 = field1 + field2;

到目前为止,我发现最简单的方法是使用带有db.eval()的pymongo.code.Code类来调整链接的SO答案,例如:

db.eval(Code("function () {"
             "coll.find({}, {field1: 1, field2: 2})"
             ".forEach( function(doc) {"
             "    doc.field1 += doc.field2;"
             "    coll.save(doc);"
             "    });"
             "}"))

您可以选择使用db.system.js.save({_id:'myfunc', value: function(){...}});从mongo shell将js脚本保存在服务器上db.system.js.save({_id:'myfunc', value: function(){...}}); 并使用db.eval(Code('return myfunc()'))从python执行

Col.update({}, {'$set': {'field1': field1 + field2})

空{}是选择条件或where子句。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM