【问题标题】:error when trying to update mongodb using a flask variable for the fieldname尝试使用字段名的烧瓶变量更新 mongodb 时出错
【发布时间】:2020-07-04 12:57:34
【问题描述】:

我正在使用烧瓶尝试更新一个 mongodb 集合,当我声明需要更新的字段名时该集合工作正常,但我希望字段名成为一个变量,具体取决于哪个需要更新。这可以很好地更新字段:

Scoresenglish6.objects(user_id=user_id).update(E6001=str(score))

但是,正在更新的字段名可以更改(因此在本例中为“E6001”),因此我将需要更新的字段名作为名为 field_name 的变量:

score = "10"
field_name = "E6001"
Scoresenglish6.objects(user_id=user_id).update(field_name=str(score))

然后我得到错误:

mongoengine.errors.InvalidQueryError:无法解析字段“field_name”

显然是因为没有名为 field_name 的字段名。有没有办法做到这一点?在此先感谢,我是一名家庭编码员,从事家庭项目,如果这看起来含糊不清且没有得到很好的解释,我们深表歉意。

【问题讨论】:

    标签: python-3.x mongodb flask mongodb-query flask-mongoengine


    【解决方案1】:

    你可以使用locals()来实现你想要的。

    试试这个:

    score = "10"
    field_name = "E6001"
    Scoresenglish6.objects(user_id=user_id).update(locals()['field_name']=str(score))
    

    查看this tutorial 以了解locals() 的工作原理以及如何使用它们。

    【讨论】:

      猜你喜欢
      • 2021-01-09
      • 1970-01-01
      • 2021-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      相关资源
      最近更新 更多