sql >> Base de Datos >  >> NoSQL >> MongoDB

búsqueda de texto mongodb con múltiples campos

Debe crear un índice de texto en los campos que desea buscar:

db.deals.ensureIndex({ name: "text", description : "text", category : "text" });

De la documentación del operador $texto:

$text realiza una búsqueda de texto sobre el contenido de los campos indexados con un índice de texto.

El índice que creó para sus tres campos es un índice compuesto, no un índice de texto. El índice de texto se verá así:

{
    "v" : 1,
    "key" : {
        "_fts" : "text",
        "_ftsx" : 1
    },
    "name" : "name_text_description_text_category_text",
    "ns" : "test.deals",
    "weights" : {
        "category" : 1,
        "description" : 1,
        "name" : 1
    },
    "default_language" : "english",
    "language_override" : "language",
    "textIndexVersion" : 2
}