私は、コレクション内の次のコードを持っている:find_another_document_and_update_it()
インサイド更新文書 - mongoengine
class Author(Agent):
def foo(self):
self.find_another_document_and_update_it(ids)
self.processed = True
self.save()
def find_another_document_and_update_it(self, ids):
for id in ids:
documentA = Authors.objects(id=id)
documentA.update(inc__mentions=1)
を私はデータベースを照会し、文書Aを取得し、私はその後、Aにカウンタをインクリメントを呼び出した後、find_another_document_and_update_it()
を呼び出した後、私は現在の文書を保存してBと言うことができます。self.save()
が呼び出されたときにAのカウンターが実際に増加することがわかりますが、文書Aは古い値にリセットされます。私は問題は並行性の問題とMongoDBがそれをどのように取り扱うかであると思います。私はあなたの助けに感謝します。