我使用的Web應用程序pymongo,和想要做的形式的東西鎖定一個文件:MongoDB中
doc = collection.find(document)
doc.array1.append('foo')
for(y in doc.array2): <do things with y>
doc.array2 = filter(lambda x: ..., doc.array2)
doc.x = len(doc.array2)
collection.save(doc)
有沒有什麼簡單的方法,這樣我可以處理處理同一文檔的多個請求並防止他人破壞另一個/的結果無效,因爲它正在編輯一個陳舊的版本?
我看到他們如何反對持有鎖,但我認爲這是爲收集而不是單個文件?我希望有一種方法可以執行此操作: –
2012-07-17 00:03:12
該文檔通過基本的'update'查詢或更復雜的'find and modify'命令解釋了這樣做的方法。這個問題是基於你的例子,你首先要對文檔數據做一堆本地操作來確定新的修改值。這需要能夠將文檔從客戶端保持在鎖定狀態。他們不允許這種功能,因爲他們表示可能導致潛在的死鎖(如果說你的應用程序突然終止)。 – jdi 2012-07-17 00:12:46
MongoDB(特別是PyMongo)是否有一個內置構造來執行此操作@jdi還是必須手動執行此操作?似乎無法找到。 – Ali 2015-10-06 09:59:02