2013-10-08 3 views
2

MongoDB похоже только на логические или текстовые запросы?MongoDB текстовый поиск логический И

Если я хочу найти все документы, содержащие слова («яблоко» или «оранжевый» или «груша»), я могу сделать следующее.

db.collection.runCommand('text', {search: 'apple orange pear', limit: -1}) 

Но как найти все документы, которые содержат все 3 слова («яблочные» и «оранжевыми» и «груша») в произвольном порядке.

Возможно ли это?

+0

Проверьте этот ответ, как ав orkaround для поддержки логических запросов 'AND' путем обертывания каждого отдельного поискового запроса двойными кавычками: http://stackoverflow.com/a/35641331/1123355 –

ответ

-2

Да, это возможно. Пожалуйста, обратитесь к документации здесь - http://docs.mongodb.org/manual/tutorial/search-for-text/#match-phrases

Для вашего запроса он должен выглядеть примерно так ...

db.collection.runCommand('text', { search : "('apple') AND ('orange') AND 
              ('pear')", limit : 1 }); 
+0

Я не думаю, что это правильно, ссылка вы правы, но вы взяли пример объяснения, а не пример кода – Sammaye

+0

@ Sammaye, я не понял вас .. вы говорите, что код выше неправильный ?, я протестировал его, работая в моем db ... – SridharVenkat

+0

Вы полностью уверены или сделали это просто искать по-другому? Прочитайте весь seciton, вы увидите, что я имею в виду – Sammaye

2

Логическая операция И может быть сделано, как это

"\" word1 \»\ "word2 \" "

в вашем примере, следовательно: "\" яблоко \" \ "оранжевый" \ "груша"»

Смежные вопросы