2016-09-19 14 views
0

我有一個csv文件,其行數很大,我想將它存儲在mongodb中。在設計模式時我需要一些建議。用於大型csv文件的mongodb模式

模式類型1:

var CsvSchema = new Schema({ 
    col1: String, col2: String, col3: String, col4: String //will save each row of csv file as an object. 
}); 

模式類型2:

var CsvSchema = new Schema({ 
    row: [] //will store each row of csv file as array 
}); 

我然後需要執行大量的讀取操作該數據(報告的應用程序)的。 我的假設:

  • 數據存儲與模式2型將佔據非常小的空間比較 類型1.
  • 我猜1型的讀操作會更快然後鍵入2

任何建議我應該使用哪種類型的模式來存儲考慮了兩者的利弊的數據...

回答

0

將每行保存爲數組(模式2)時。您將佔用更少的存儲空間,但對於MongoDB,索引和數據操作將更加複雜。

請務必記住,MongoDB只接受每個文檔16MB的默認值。

我建議你閱讀這篇文章有關數組操作中使用的MongoDB:http://blog.mlab.com/2013/04/thinking-about-arrays-in-mongodb/

0

主要問題在設計時無sql數據庫是:你將如何查詢數據?因此,如果您只需要檢索完整的行,則永遠不需要搜索某些字段,並且您確信這永遠不會改變軟件生命週期,請繼續並使用類型2.但請注意,這是一個質疑的噩夢。

如果要使用,每個人都期待的「正常」的搜索行動從數據存儲(搜索所有的文件,其中列1爲「x」和欄3不是「Y」),去類型1.