次の形式のドキュメントのコレクションがあります。
{ _id: ObjectId(...)
, title: "foo"
, tags: ["bar", "baz", "qux"]
}
クエリは、これらのタグのいずれかを持つすべてのドキュメントを検索する必要があります。私は現在、このクエリを使用しています:
{ "tags": { "$in": ["bar", "hello"] } }
そしてそれは機能します。「bar」または「hello」とタグ付けされたすべてのドキュメントが返されます。
ただし、関連性で並べ替えたいと考えています。つまり、一致するタグが多いほど、ドキュメントが結果で早く出現するはずです。たとえば、タグ付けされたドキュメントは、クエリに対して["bar", "hello", "baz"]
タグ付けされたドキュメントよりも結果の上位に表示される必要があります。どうすればこれを達成できますか?["bar", "baz", "boo"]
["bar", "hello"]