sql >> Database >  >> NoSQL >> MongoDB

Hoe EN en NIET in MongoDB $ tekst zoeken

Er zijn een paar opties die u kunt gebruiken bij het zoeken naar tekst om aan die behoeften te voldoen. Bekijk de volgende documenten:

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

De standaard "lijst" met woorden is een of inclusie, maar als je geen en . wilt opname "citaat" de woorden:

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

Als u wilt uitsluiten een woord, dan voeg je het voorvoegsel toe met - :

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

En als je daar een deel van wilt als een exacte zin dan "quote" je de hele zin:

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

Stemming-woorden hebben echter een probleem, dus:

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

Zou niet echt een resultaat retourneren.

Zie de documentatie op de $text exploitant voor voorbeelden. Momenteel zijn ze er niet allemaal, maar het wordt beter.




  1. Hadoop MapReduce-zelfstudie voor beginners

  2. Detecteren of een waarde ten minste één numeriek cijfer in SQL bevat

  3. Controleren of een veld een string bevat

  4. Dump Mongo Collection in JSON-indeling