0
原子更新之前,假設一個架構如下圖所示:獲得一個場MongoEngine
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")
有沒有更好的方法來做到這一點?
可以'self.has_perm'在查詢中定義的?看起來像它的3個查詢。 1)獲取DocA,2)獲取用戶3)更新 – Ross
'self.has_perm'根本不查詢數據庫。它只是檢查object_passed_to_it.owner.username是否等於登錄用戶。 – polandeer