J'ai une collection de documents sous la forme suivante:Tri par pertinence avec MongoDB
{ _id: ObjectId(...)
, title: "foo"
, tags: ["bar", "baz", "qux"]
}
La requête doit trouver tous les documents avec l'une de ces balises. J'utilise actuellement cette requête:
{ "tags": { "$in": ["bar", "hello"] } }
Et cela fonctionne; tous les documents marqués "barre" ou "bonjour" sont renvoyés.
Cependant, je veux trier par pertinence, c'est-à-dire plus correspond aux étiquettes le plus tôt le document devrait apparaître dans le résultat. Par exemple, un document étiqueté ["bar", "hello", "baz"]
doit être plus élevé dans les résultats qu'un document marqué ["bar", "baz", "boo"]
pour la requête ["bar", "hello"]
. Comment puis-je atteindre cet objectif?
Je pense que c'est {$ unwind: "$ tags"} plutôt que {$ unwind: {"$ tags"}} –
Que savez-vous - vous avez raison, le premier à remarquer dans quatre ans? :) –
Je suppose. Réponse incroyable btw-- énorme aide. Merci. –