[英]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.