假设如下所示的架构:
class DocA(Document):
owner = ReferenceField(User)
strings = ListField(StringField)
如果我想检查登录用户是否是所有者,然后将新字符串添加到stringlist,我当前必须访问数据库两次:
if self.has_perm(DocA.objects(id=someid).only('owner').first()):
DocA.objects(id=someid).update_one(push__strings="New String")
有更好的方法吗?
答案 0 :(得分:1)
鉴于perm只是检查所有者,您可以在一个查询中执行此操作:
DocA.objects(id=someid, user=logged_in_user).update_one(push__strings="New String")