今天領導安排一個任務:“根據主鍵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 查詢一下看是否存在相應的字段值。
每天進步一小步,加油吧