Mongoドキュメントを作成していて、値がない場合があるフィールド{key: value}
がある場合、2つのオプションがあるように思われます。
- 書き込み
{key: null}
、つまりフィールドにnull値を書き込みます - そのドキュメントにキーをまったく保存しないでください
どちらのオプションも簡単にクエリできます。{key : null}
一方をクエリし、もう一方をクエリします{key : {$exists : false}}
。
アプリケーションシナリオに影響を与える2つのオプションの違いを実際に考えることはできません(オプション2のストレージがわずかに少ないことを除いて)。
2つのアプローチのどちらかを他のアプローチよりも好む理由があるかどうか、そしてその理由を誰かに教えてもらえますか?
編集
質問をした後、2つのケースでインデックスの動作が異なる可能性があることにも気付きました。つまり、オプション2に対してスパースインデックスを作成できます。