1
我是MongoDB的初學者,我有一個文件是這樣的:關於MongoDB的:原子獲取和設置
{
"_id": "abc",
"names": {
"1" : "name1",
"2" : "name2",
"3" : "name3"
}
}
我想用多線程加載「NAME4」,「NAME5」,「nameX」 .. 。以 「名」
我的方式:
- 第一步:讓所有的名字
- 第二步:添加 'nameN' 爲名稱(姓名[N] = 'nameN')
- 第3步:設置新名稱
我知道這不是原子-_-!所以我的問題是如何使其原子?
我的另一種方式: 添加一個「版本」字段來記錄,得到的結果時,記錄「版本」,然後用像「版本」設置「名稱」:
update_one({"_id": "abc", "version": currentVersion}, {$set: {"names": newNames}})
如果它與'版本'不匹配,更新失敗,新的'nameN'不會添加到文檔中。我希望它隨時獲得成功。
有人可以幫助我嗎?謝謝
'names'是一個對象不是數組。所以你不能'名字[n] ='nameN' –
@Siddharth Ajmera謝謝你,我使用pymongo客戶端 – yangbinnnn