python - 使用 MongoEngine 保存和更新嵌套文档
问题描述
我想实现这个结构模型,用烧瓶上的 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 上声明什么样的字段?
解决方案
据我了解,您需要一个嵌套文档(技能)到另一个(在这种情况下指的是用户)。对于这样的事情,您不必自动更新字段,而是将值附加到子文档并保存所有内容。试着按照你的例子,在你的情况下应该做这样的事情:
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()
拯救一切
推荐阅读
- javascript - 是否可以使用 shopify-buy sdk 店面 api 覆盖定价计算?
- aws-lambda - Angular 通用构建 baseHref 更改破坏了应用程序中的角度路由
- javascript - 带有特殊字符的密码验证
- c++ - C++ 中是否有任何预定义函数可以从给定数组中查找最小和最大元素?
- python - Plotly Figure Factory rug_text 的问题
- python - Python 赋值表达式语法错误
- amazon-web-services - 我可以使用 WAF 检查请求是否来自 VPC 内部
- c++ - curlpp c++ 禁用打印
- javascript - SWIPER JS - 居中幻灯片 - 初始视图:左侧幻灯片齐平,右侧部分可见幻灯片
- virtuoso - 可以通过代理到 https 地址的海绵吗?