非常に大きなコレクション (800k 以上) があり、タグに基づくオートコンプリート (単語の先頭のみに基づく) 機能のクエリを実装する必要があります。私のドキュメントは次のようになります。
{
"_id": "theid",
"somefield": "some value",
"tags": [
{
"name": "abc tag1",
"vote": 5
},
{
"name": "hij tag2",
"vote": 22
},
{
"name": "abc tag3",
"vote": 5
},
{
"name": "hij tag4",
"vote": 77
}
]
}
たとえば、クエリが「ab」で始まり、「何らかの値」である「somefield」を持つすべてのタグの場合、結果は「abc tag1」、「abc tag3」(名前のみ) になります。挿入や更新の速度よりも、クエリの速度に関心があります。
ここでは集計フレームワークが正しい方法だと思いますが、非常に高速なクエリを実行するための最適なパイプラインとインデックスは何でしょうか?
ドキュメントは「タグ」ドキュメントではありません。クライアント オブジェクトを表すドキュメントです。簡単にするために省略したデータ フィールドがはるかに多く含まれています。各クライアントにはいくつかのタグと別のフィールドがあります (タグと混同しないように名前を変更しました)。配列 )。クライアントのグループが持っているすべてのタグの重複のないセットを取得する必要があります。