sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man OCH och INTE i MongoDB $textsökning

Det finns några alternativ som du kan använda med textsökning för att passa dessa behov. Tänk på följande dokument:

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

Standard "lista" med ord är ett eller inkludering, men om du inte vill ha ett och inkludering du "citerar" orden:

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

Om du vill utesluta ett ord sedan prefixar du med - :

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

Och om du ville ha en del av det som en exakt fras sedan "citerar" du hela frasen:

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

Det har dock ett problem att komma med ord, så :

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

Skulle faktiskt inte returnera ett resultat.

Se dokumentationen på $text operatör för exempel. Alla är inte där just nu, men det blir bättre.




  1. Hur implementerar man Redis i CodeIgniter?

  2. MongoDB - Ta bort ett dokument

  3. arrayFilters i mongodb

  4. MongoDB® med Hadoop och relaterade Big Data-teknologier