MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come AND e NOT in MongoDB $ ricerca di testo

Ci sono alcune opzioni che puoi usare con la ricerca di testo per soddisfare queste esigenze. Considera i seguenti documenti:

{ "text" : "cake" }
{ "text" : "sale" }
{ "text" : "sale cake" }
{ "text" : "cake sale" }
{ "text" : "dress sale" }
{ "text" : "cake sale monday" }

L'"elenco" di parole predefinito è un o inclusione, ma se non vuoi un e inclusione si "citano" le parole:

db.words.find( { "$text": { "$search": "\"cake\" \"sale\"" } },{_id: 0})
{ "text" : "cake sale" }
{ "text" : "sale cake" }
{ "text" : "cake sale monday" }

Se vuoi escludere una parola poi prefisso - :

db.words.find( { "$text": { "$search": "\"cake\" \"sale\" -monday" } },{_id: 0})
{ "text" : "cake sale" }
{ "text" : "sale cake" }

E se ne volessi parte come una frase esatta quindi "cita" l'intera frase:

db.words.find( { "$text": { "$search": "\"cake sale\" -monday" } },{_id: 0})
{ "text" : "cake sale" }

Tuttavia, la derivazione delle parole ha un problema, quindi :

db.words.find( { "$text": { "$search": "test -testing" } },{_id: 0})

In realtà non restituirebbe un risultato.

Consulta la documentazione su $text operatore per esempi. Al momento non ci sono tutti, ma sta migliorando.