2016-09-19 10 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での読み出し動作が速いタイプ2.

、その後になると思い タイプ1

  • に比べ非常に少ないスペースを占有します私がデータを格納するために使用するスキーマのタイプは、両方の長所と短所を考慮してください。

  • 答えて

    0

    各行を配列(スキーマ2)として保存すると、ストレージの占有スペースは少なくなりますが、MongoDBではインデックス作成やデータ操作がより複雑になります。

    MongoDBは、ドキュメントごとにデフォルトで16MBを受け入れることを覚えておくことが重要です。

    私はMongoDBのを使用して配列操作については、この記事を読んですることをお勧めいたします:http://blog.mlab.com/2013/04/thinking-about-arrays-in-mongodb/

    0

    主な質問を何のSQLデータベースを設計しないときは、次のとおりです。どのようにデータを照会しますか?

    このように、完全な行を検索する必要がある場合は、特定のフィールドを検索する必要はなく、ソフトウェアライフタイムを越えて変更することは絶対に確実です。タイプ2を使用してください。これはクエリーの悪夢だと思う。

    誰もがデータストアから期待している(column1が "x"でcolumn3が "y"でないすべてのドキュメントを検索する)通常の検索操作を使用する場合は、タイプ1になります。

    関連する問題