Hay algunas opciones que puede usar con la búsqueda de texto para satisfacer esas necesidades. Considere los siguientes documentos:
{ "text" : "cake" }
{ "text" : "sale" }
{ "text" : "sale cake" }
{ "text" : "cake sale" }
{ "text" : "dress sale" }
{ "text" : "cake sale monday" }
La "lista" predeterminada de palabras es o inclusión, pero si no quiere una y inclusión "citas" las palabras:
db.words.find( { "$text": { "$search": "\"cake\" \"sale\"" } },{_id: 0})
{ "text" : "cake sale" }
{ "text" : "sale cake" }
{ "text" : "cake sale monday" }
Si desea excluir una palabra y luego el prefijo -
:
db.words.find( { "$text": { "$search": "\"cake\" \"sale\" -monday" } },{_id: 0})
{ "text" : "cake sale" }
{ "text" : "sale cake" }
Y si quisieras parte de eso como una frase exacta luego "citas" la frase completa:
db.words.find( { "$text": { "$search": "\"cake sale\" -monday" } },{_id: 0})
{ "text" : "cake sale" }
Sin embargo, derivar palabras tiene un problema, así que:
db.words.find( { "$text": { "$search": "test -testing" } },{_id: 0})
En realidad, no devolvería un resultado.
Consulte la documentación en $text
operador para ejemplos. No todos están ahí en este momento, pero está mejorando.