MongoDB CSV 導出:行上的一個數組/列和數組索引,反之亦然
我有一個如下所示的 MongoDB 架構:
const batchSchema = mongoose.Schema({ _id: mongoose.Schema.Types.ObjectId, time: {type: [Number]}, tmp: {type: [Number]}, hum: {type: [Number]}, co2: {type: [Number]}, coolRelay: {type: [Boolean]}, humRelay: {type: [Boolean]}, fanRelay: {type: [Boolean]}, lightRelay: {type: [Boolean]}, });
我的目標是擁有一個 csv 文件,我可以將其導入到 excel 中,用於根據數據創建圖表、圖形和其他視覺效果。
使用 Studio 3T(https://robomongo.org/),這似乎是不可能的,除非我只是不理解設置。數據是水平組織還是垂直組織並不重要。只要每個都在自己的列/行上,不包括
_id
欄位。3T 似乎只能將它們放在同一行。我剛剛嘗試使用 mongo 的本機 cli csv 導出工具,但發現我的版本似乎沒有。我在樹莓派上的 openSuse、arm64 上執行 3.6 版。
mongoexport
由於找不到命令,並且當我執行建議cnf mongoexport
以查找包含它的包時,也沒有返回任何內容。我知道我可以使用 3T 為每個陣列導出一個文件,然後將它們剪切/粘貼在一起,但是我不打算支付 3T 的年度許可證,只是在開發過程中使用免費試用版來獲得更有用的 gui . 希望能夠編寫可以重複使用的預定義 bash 腳本,以便在完成時導出每個“批處理”文件。
我對 mongoexport 有什麼遺漏還是這是 aarch64 版本的限制?在這一點上,我真的不想回去、學習和重新編寫 postgreSQL 的所有內容。我的意思是,如果必須的話,我會的,但我想先和你們一起辦理登機手續。
MongoDB CSV 導出:行上的一個數組/列和數組索引,反之亦然
如果您無法從 MongoDB CLI 導入或導出集合數據,我會建議您。然後安裝 Compass,您可以從 MongoDB Compass 輕鬆導入和導出集合數據。根據此處的 MongoDB 文件, MongoDB Compass 可與 MongoDB Server 版本 3.0 及更高版本(企業版和社區版)一起使用。它在 64 位版本的 Mac OS X、Windows、Ubuntu 14.04+ 和 RHEL 7+ 上執行。
**注意:**從 MongoDB Server 版本 3.6 開始,MongoDB 將特定於平台的 Compass 安裝腳本與 MongoDB Server 下載打包在一起。
例如
我有一個數據庫測試和收集文章,其中包含以下記錄
> use test switched to db test > show collections alpha articles books oplog people sales sample team users > db.articles.find().pretty(); { "_id" : 1, "subject" : "coffee", "author" : "xyz", "views" : 50 } { "_id" : 2, "subject" : "Coffee Shopping", "author" : "efg", "views" : 5 } { "_id" : 3, "subject" : "Baking a cake", "author" : "abc", "views" : 90 } { "_id" : 4, "subject" : "baking", "author" : "xyz", "views" : 100 } { "_id" : 5, "subject" : "Café Con Leche", "author" : "abc", "views" : 200 } { "_id" : 6, "subject" : "Сырники", "author" : "jkl", "views" : 80 } { "_id" : 7, "subject" : "coffee and cream", "author" : "efg", "views" : 10 } { "_id" : 8, "subject" : "Cafe con Leche", "author" : "xyz", "views" : 10 } >
**
Table
**集合記錄以如下格式出現在 MongoDB Compass 中現在我將通過 MongoDB 指南針工具導出收藏記錄。使用 MongoDB 指南針工具在您的主機(本地或遠端)收集後。選擇數據庫(這裡我取過測試數據庫)然後點擊集合名稱(這裡我取過文章)然後點擊集合菜單選項卡。它會像這樣出現
根據您的需要,您點擊選項,因為這裡我想以**
.csv
**格式導出集合數據,然後我將點擊導出命令,然後螢幕將如下所示然後根據您的需要瀏覽文件位置並以
.csv
格式導出收集記錄。以 .csv 格式從指南針導出集合記錄後,數據在 .csv 中的外觀將如下所示:
經過更多的探勘,我發現了這個:https ://stackoverflow.com/questions/26378769/mongodb-mongoexport-all-objects-in-nested-array
似乎我將不得不學習如何使用 $ unwind & $ 得到我想要的結果。