"overspecified" find()クエリを使用してMongoDBコレクションをフィルタリングしたいとします。たとえば、フィルタリングするコレクションのcollection A
には、属性の要件のセットを含むドキュメントがあります。例は{req: age:{min:20,max:30}}
とb
という要件を含む文書a
で、要件は{req: gender:male}
です。述部を使用してMongoDBコレクションを最適にフィルタリングする方法
d
のcollection D
からは、d = {age:21, gender: male}
という内容の文書もあります。 d
は、両方の要件を満たしているとして、この場合
a
と
b
は、
d
が対象である文書の集合である必要があります。我々は
find
クエリで
d
の属性のすべてが含まれている場合
しかし、我々は我々の結果から、両方a
とb
を排除するdb.A.find({d.age > req.age.min, d.age < req.age.max, d.gender: req.gender})
を取得します。
d
が指定における文書の要件より多くの属性が含まれており、D
でA
と属性の要求事項ということを考えると、d
が要件を満たしていることA
内のすべての文書を選択するための最良の方法は何ですか修正されていないのですか?すべてのA.req
文書で、可能なすべての属性をD
に指定することは避けたいと考えており、要件をできるだけ柔軟にしたいと考えています。