Clasificación por relevancia con MongoDB
Tengo una colección de documentos en el siguiente formulario:
{ _id: ObjectId(...)
, title: "foo"
, tags: ["bar", "baz", "qux"]
}
La consulta debe encontrar todos los documentos con cualquiera de estas etiquetas. Actualmente utilizo esta consulta:
{ "tags": { "$in": ["bar", "hello"] } }
Y funciona; Se devuelven todos los documentos etiquetados "barra" o "hola".
Sin embargo, quiero ordenar por relevancia, es decir, cuanto másetiquetas coincidentes cuanto antes se produzca el documento en el resultado. Por ejemplo, un documento etiquetado.["bar", "hello", "baz"]
Debería ser mayor en los resultados que un documento etiquetado.["bar", "baz", "boo"]
para la consulta["bar", "hello"]
. ¿Cómo puedo conseguir esto?