Export

MongoDB CSV 導出:行上的一個數組/列和數組索引,反之亦然

  • March 16, 2022

我有一個如下所示的 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 & $ 得到我想要的結果。

引用自:https://dba.stackexchange.com/questions/233594