2014-01-28 79 views
0

我有一個pymongo腳本,它檢查一個元素,如果它在集合中,則返回它的id,否則插入並返回新插入的集合的id。我希望這是線程安全的。由於多個腳本可能會使用此腳本來檢查元素。 我應該如何使這個線程安全。Pymongo腳本線程安全

我看到start_request方法,認爲它會工作,但它不。它插入兩個引用相同元素的文檔。

+0

從你使用'scripts'這個詞並沒有提及'threads'的事實,我懷疑它不是線程安全的, – shx2

回答

0

由於shx2提到,您不是在尋找線程安全性,而是爲了原子數據庫事務。

MongoDB findAndModify可能是你在找什麼。它以原子方式更新文檔,或者在您指定new: trueupsert: true選項並返回文檔時插入它。