MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да И и НЕ в MongoDB $text търсене

Има няколко опции, които можете да използвате с текстово търсене, за да отговарят на тези нужди. Разгледайте следните документи:

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

„Списъкът“ с думи по подразбиране е или включване, но ако не желаете ни включване вие ​​"цитирате" думите:

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

Ако искате даизключите дума, след което поставяте префикс с - :

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

И ако искате част от това като точна фраза след това "цитирате" цялата фраза:

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

Основните думи обаче имат проблем, така че :

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

Всъщност няма да върне резултат.

Вижте документацията на $text оператор за примери. Не всички са там в момента, но става все по-добре.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Представяне на диаграми за търсене в MongoDB

  2. Запитване на елементи от масива с Mongo

  3. Mongoose винаги връща празен масив NodeJS

  4. Как да използвам точка в името на полето?

  5. Разбиране на MongoDB индекси