1

コレクション内のすべてのオブジェクトに関連して入力されていない可能性のあるいくつかのキーを持つMongoDbコレクションがあります。これらのキーが入力されていないすべてのオブジェクトを検索するクエリを実行したいと思います。

する方がいいでしょうか

  • 常にオブジェクトにキーを含め、それをnullで埋めますか? {'x' : 'banana', 'y' : null}また
  • 関連性がない場合はキーを含めないでください{'x' : 'banana'}

どちらの方法でも必要な結果を照会できることを理解しています(ここを参照)。どちらが「ベストプラクティス」と見なされ、その理由がわからないのです。

コレクションには約10個の「必須」フィールドと3個の「オプション」フィールドがあることに注意してください(関連する場合)。

4

2 に答える 2

1

これは、アプリがこのコレクションのドキュメントをどのように処理するかによって異なります。を保存しないことで、スペースを節約できますy: null。保存するy: null場合は、技術的に存在することを覚えておく必要があります。したがって、特定の方法yでsを照会する必要があります。nullMongoの上のレイヤーが気にしない場合は、@ Derickが推奨するように、空のフィールドを保存しないようにします。nullただし、それが気になり、 s内のsを操作する方が簡単であることがわかった場合は、それを選択してくださいy

有効性についてのあなたの質問への更新。すべてを正しく実行している場合は、データセットがRAMに収まるように作業しています。そうは言っても、でインデックスを作成しない限り、どちらのアプローチにも目立った違いはないと思いますy。この場合、動作は異なる可能性がありますが、調べるための最良の方法は、いくつかのテストを実行することです。

于 2012-04-28T19:42:41.893 に答える
1

空のフィールドを保存しないようにします。ただし、このコレクションで実行するクエリの種類によって少し異なります。それについて詳しく説明していただければ、回答を更新します。

于 2012-04-28T19:36:38.227 に答える