que tiene una colección de documentos de la siguiente forma:Clasificación por relevancia con MongoDB
{ _id: ObjectId(...)
, title: "foo"
, tags: ["bar", "baz", "qux"]
}
La consulta debe encontrar todos los documentos con cualquiera de estas etiquetas. Actualmente uso esta consulta:
{ "tags": { "$in": ["bar", "hello"] } }
Y funciona; se devuelven todos los documentos etiquetados "bar" u "hola".
Sin embargo, quiero ordenar por relevancia, es decir, cuanto más coincidan con las etiquetas cuanto antes se produzca el documento en el resultado. Por ejemplo, un documento etiquetado ["bar", "hello", "baz"]
debe ser más alto en los resultados que un documento etiquetado ["bar", "baz", "boo"]
para la consulta ["bar", "hello"]
. ¿Cómo puedo conseguir esto?
Creo que es {$ unwind: "$ tags"} en lugar de {$ unwind: {"$ tags"}} –
¿Qué sabe usted - tiene razón, el primero en darse cuenta en cuatro años? :) –
Supongo. Respuesta increíble por cierto-- gran ayuda. Gracias. –