【问题标题】:Saving and updating nested documents with MongoEngine使用 MongoEngine 保存和更新嵌套文档
【发布时间】:2019-05-28 01:55:07
【问题描述】:

我想实现这个结构模型,用烧瓶上的 MongoEngine 将我的数据存储在 Mongodb 上:

skills = [{"asm":"Assembly",
           "flag":False,
          "date": datetime},
          {"java":"Java",
           "flag":False,
           "date": datetime}]

所以我不知道如何声明和更新这种结构。 为了更新我使用的一个对象:

User.objects(skills=form.skills.data).update_one()

但是,我不知道如何一次更新更多字段。 我尝试使用下面的代码,但它不起作用。

now = datetime.now()
 User.objects(skills=form.skills).update_one(set__skills = ({'ruby':'Ruby'}, {'flag':'true'},{'date':now}))

我应该在 forms.py 上声明什么样的字段?

【问题讨论】:

    标签: python mongodb flask mongoengine flask-mongoengine


    【解决方案1】:

    据我了解,您需要一个嵌套文档(技能)到另一个文档(在这种情况下指的是用户)。为了做这样的事情,您不必自动更新字段,而是 append 值到子文档和 save 一切。 试着效仿你的例子,在你的情况下应该做这样的事情:

    user = User.objects(email=current_user.email).get()
    

    通过某个查询过滤器获取引用用户 X 的 BaseQuery,在我的示例中是当前登录用户的电子邮件

    user.kskills.append(SubDocumentClass(skillName="name_of_the_skill", status=True, date=datetime.now()))
    

    用于将集合附加到子文档列表。 (我已经附加了你的字段)

    user.save() 
    

    保存一切

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-19
      • 1970-01-01
      • 2012-09-05
      • 2018-04-07
      相关资源
      最近更新 更多