MongoDB csv檔案匯入匯出

2021-09-08 19:18:26 字數 2136 閱讀 2134

1.匯出到csv檔案:

需要登入認證的:

2.從csv匯入:

需要登入認證的:

資料經過csv匯出匯入,有乙個非常隱蔽的問題,編寫**時需要注意:

先導入一條資料:

其中price是double型別:

然後我把該條記錄匯出到demo.csv,並且從資料庫刪除該條記錄,然後再從demo.csv匯入該條記錄:

再來看此時資料庫中該條記錄:

發現price數值原本double型66.000000自動變成了int32型66。

這時問題出現了,你如果還是用bson_iter_double(&iter)去取price欄位時,就會取不到值:

只有用bson_iter_int32(&iter)才能取到值:

所以得到結論

當需要取資料中的某個float(或double)型別的字段時,**可以如下編寫:

避免:資料經過 匯出至csv再從csv匯入的過程之後,欄位值取不到的問題。

總覺的上面的方法有點膈應,所以繼續摸索,發現了2個新的api:

測試**編寫如下:

本以為bson_iter_value(&iter)->value.v_double 就可以解決問題,可斷點發現如果是字段是int32型,v_double的值並不能滿足要求。

如果要用這兩個api,還得自己封裝一層,把type和value對應起來。

如:欄位是bson_type_int32就取value.v_int32的值; 是bson_type_double就取value.v_double的值。

仍然覺得上述方法很不爽,總是想尋求一種不依賴字段本身資料型別的取值方法。

終於,json完美滿足了我的需求,測試**如下:

上述json解析使用的是jsoncpp,jsoncpp使用方法詳見:

Python requirement 匯入匯出包

在使用python的時候,需要把安裝的package通過requirements.txt匯出來,乙個命令便可部署新環境。requirements.txt,是用於記錄所有依賴包及其精確的版本號。自動生成requirement.txt命令 pip freeze requirements.txt執行成功後...

impdp匯入dmp檔案 impdp資料匯入異常

大概700g的資料用了下面的匯入語句 impdp但是發現導數在半夜突然因為system表滿了停了下來,看到近乎30g的system表空間完全滿了,不像是日誌檔案的樣子。前前後後弄了很久 解決方案如下 impdp aeis xx 密碼 ip 埠 orcl directory data pump dir...

mysql 匯入巨集檔案型別 庫標頭檔案的匯入匯出巨集

h ifdef cfg api being compiled ifdef win32 define cfg api export declspec dllexport else define cfg api export endif else if defined win32 define cfg ...