日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mongodb 导出 带条件_将 MongoDB 导出成 csv

發布時間:2025/3/20 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mongodb 导出 带条件_将 MongoDB 导出成 csv 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

**【摘要】**

將 Mongodb 數據結構轉換成結構化的數據需求,我們可利用集算器 SPL 語言來進行輔助實現。若想了解更多,請前往乾學院:將 MongoDB 導出成 csv!

來源:https://plus.google.com/+VicNgrail/posts/ebS9JUtFopw

Mongodb 可以存儲非結構化數據,尤其擅長存儲 json 格式的數據。對于習慣于數據庫表結構的用戶或需要使用結構化數據的用戶來說,往往希望能將非結構化的數據轉換成結構化的數據,以方便后面的計算,而要將這些數據導出為標準的結構化數據經常存在一定的困難。針對這種情況,我們可以利用集算器 SPL 語言來輔助 MongoDB,方便地導出結構化數據,下面用例子說明。 Collection carInfo

的部分數據如下:

{

"_id" : ObjectId("5518f6f8a82a704fe4216a43"),

"id" : "No1",

"cars" : {

"name" : "Putin",

"car" : ["porche", "bmw"]

}

}

{

"_id" : ObjectId("5518f745a82a704fe4216a44"),

"id" : "No2",

"cars" : {

"name" : "jack",

"car" : ["Toyota", "Jetta", "Audi"]

}

}

……

需要將其導出為CSV文件,期望的數據格式如下:

使用集算器SPL的代碼如下:

A

1

=mongo_open("mongodb://localhost:27017/local?user=test&password=test")

2

=mongo_shell(A1,"carInfo.find(,{_id:0})")

3

=A2.conj((t=~,~.cars.car.new(t.id:id, ? t.cars.name:name, ~:car)))

4

=file("D:\\data.csv").export@t(A3;",")

5

>mongo_close(A1)

A1: 連接MongoDB,連接字格式為mongo://ip:port/db?arg=value&…

A2: 使用find函數從集合carInfo中取數,形成游標。過濾條件是空,取出_id之外的所有字段。

A3: 取出需要的字段,拼接合成結構化二維表,結果仍然是游標。其中~表示A2中的每個document,并對cars.car字段進行拆分成行后組成序表,函數conj表示對序表縱向合并。

A4: 將A3導出為逗號分隔的csv文件,其中@t表示導出時帶列名。SPL引擎會自動管理緩存,每次從游標取一批記錄到內存進行計算。

A5: 關閉MongoDB。

如果用戶想自己管理每批處理的數據,也可以用下面的代碼:

A

B

1

=mongo_open("mongodb://localhost:27017/local?user=test&password=test")

2

=mongo_shell(A1,"carInfo.find(,{_id:0})")

3

for A2,1000

=A3.cars.car.new(A3.id:id, ? A3.cars.name:name, ~:car)

4

=file("D:\\data.csv").export@ta(B3;",")

5

>mongo_close(A1)

A3: 循環從游標讀數,每次讀1000條到內存。A3的作用范圍是縮進的B3到B4,其間可以用A3來引用循環變量。A3中的數據如下:

B3:將本批次數據轉換為結構化二維表,如下:

B4:將本批次的計算結果追加到文件中,其中@a表示數據追加。

簡言之,SPL得到數據集合的游標后,將每個document按car字段拆分后組成序表,將序表合并或以追加方式保存為文件即可。顯然,對于這類非結構化數據向結構化數據的轉換,SPL語言的處理非常高效且簡明。

相關文章:

總結

以上是生活随笔為你收集整理的mongodb 导出 带条件_将 MongoDB 导出成 csv的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。