使用 MongoEngine 保存和更新嵌套文档
Saving and updating nested documents with MongoEngine
我想实现此结构模型以将我的数据存储在 Mongodb 上,并在烧瓶上使用 MongoEngine:
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 上声明什么样的字段?
据我了解,您需要将一个嵌套文档(技能)插入另一个文档(在本例中指的是用户)。为了做这样的事情,你不必自动更新一个字段,而是 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()
拯救一切
我想实现此结构模型以将我的数据存储在 Mongodb 上,并在烧瓶上使用 MongoEngine:
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 上声明什么样的字段?
据我了解,您需要将一个嵌套文档(技能)插入另一个文档(在本例中指的是用户)。为了做这样的事情,你不必自动更新一个字段,而是 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()
拯救一切