linux環境 mongdb根據主鍵id批量更新字段

今天領導安排一個任務:“根據主鍵id給mongdb庫錄入一個字段,數據大約一百多萬吧!!!”

需求:

保持mongdb庫同一條數據的其他內容不變,根據主鍵id新增一個字段,並且錄入相應的值。

策略:

這種需求明顯用代碼和工具實現是不明智的行爲(我就是個寫java代碼的)(工具Robot 3T 還TMD都是英文),所以最好的方法就是登錄到當前mongdb的機器上,我們的mongdb庫是部署在linux環境上的。

方法:

1、準備更新的文件

文件名:erp_tours.csv 

文件內容:

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

use ENGINE_DATACENTER;

db.getCollection('WEIGHT_SORT_TEST').update({"_id":{$eq:ObjectId("5dee5420cb9269754f4205de")}},{$set:{"total_weight":"0.1989836"}},{"multi":false,"upsert":false});

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

ENGINE_DATACENTER:mongdb下的庫

WEIGHT_SORT_TEST:ENGINE_DATACENTER:mongdb下的表

update:更新條件 "_id":{$eq:ObjectId("5dee5420cb9269754f4205de") 相當於sql中的where

$set:更新的內容 $set:{"total_weight":"0.1989836"}} 

multi:根據id查詢,是否插入字段, true爲插入,false不插入(默認是false)

upsert:false(只更新找到的第一條記錄)、true(就把按條件查出來多條記錄全部更新),默認是false

2、執行命令

切換目錄到mongdb安裝目錄下

cd /usr/local/mongodb/bin

./mongo 127.0.0.1:20000 < ~/fanglei/erp_tours.csv

3、驗證

從文件中抽取幾個id值,使用Robot 3T 查詢一下看是否存在相應的字段值。

 

每天進步一小步,加油吧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章