ドキュメントのフィールドと値の分布に基づいて動的フィルタリング エンジンを構築したいと考えています (次にフィルタリングするフィールドのディシジョン ツリー)。
私はmongodb mongooseとnodejsを使用しています。
すなわち:
DB には、車の特性を説明するドキュメントが含まれています。
{color:"blue", engine:"1598", numOfDoors:3, ...}
ドキュメントでフィルタリングするのに最適なフィールドを返したいと思います。目標は、入力された特性と最も互換性のある最大 5 つのドキュメントを返すことです。
たとえば、青い車が 2 台、赤い車が 8 台、2 ドアの車が 2 台、3 ドアの車が 2 台、4 ドアの車が 2 台、5 ドアの車が 2 台、6 ドアの車が 2 台ある場合。
numOfDoors
必要な数のドキュメント (5) を返す確率が 100% であるのに対し、色によるフィルタリングはわずか 20% であるため、次にフィルタリングするフィールドとしてreturn を使用したいと思います。
以下の質問にお答えいただけると大変助かります。
- 一致したドキュメントのグループでフィルタリングするフィールドをさらに取得する方法 (mongo の柔軟なスキーマにより、ドキュメント構造は互いに異なります)
- フィールドとその値ごとにドキュメントの分布を計算するために使用できる組み込み関数またはモデルはありますか?
ありがとうございました