1

私はMongoDBのスキーマを作成しています.Genderコレクションには2種類のスキーマがあります. データの読み取りにどちらが適しているか知りたい (コレクションには数百万のレコードが含まれている可能性があるため、現時点では実際に評価できませんでした。「サンプル データを試してみてください」とは言わないでください)

1つは配列型です:

"gender": [{
            "GenderType":M/F/U,
            "total:logins": 12,
            "totaluser": 20,
            "newuser": 11
     },
     {
           "GenderType":M/F/U,
           "total:logins": 12,
           "totaluser": 20,
           "newuser": 11
     },
     {
          "GenderType":M/F/U,
          "total:logins": 12,
          "totaluser": 20,
          "newuser": 11
     }
]

2 番目はオブジェクト型です。

"gender": {
     "male": {
          "total:logins": 12,
          "totaluser": 20,
          "newuser": 11
     },
     "female": {
          "total:logins": 11,
          "totaluser": 10,
          "newuser": 10
     }
     "unknown": {
          "total:logins": 11,
          "totaluser": 10,
          "newuser": 10
     }
}

優先事項

  1. パフォーマンス
  2. 保管所
  3. 保守性
4

1 に答える 1

1

データを「読み取る」と言うとき、実行したいクエリの種類によって異なる場合があります。常にドキュメント全体を読んでいますか、それとも性別の種類を除外してコンテンツに対して数学関数を実行するつもりですか? 配列は、いくつかのタイプのクエリを処理するために MapReduce または Aggregation フレームワークを必要とすることがよくあります。大規模なコレクションではコストがかかる可能性がありますが、「女性」オブジェクトのコレクションでの作業は、より宣言的に記述および処理できます。

データでどのようなことをしたいのか詳しく説明していただけますか? より明確な答えが得られるかもしれません。

于 2012-10-08T13:31:18.963 に答える