mongodb найти несколько элементов массива

Если у меня есть такая запись;

{ "text": "text goes here", "words": ["text", "goes", "here"] } 

Как я могу сопоставить несколько слов из него в MongoDB? При сопоставлении одного слова я могу это сделать;

 db.find({ words: "text" }) 

Но когда я пытаюсь это сделать для нескольких слов, это не работает;

 db.find({ words: ["text", "here"] }) 

Я предполагаю, что, используя массив, он пытается сопоставить весь массив с тем, который находится в записи, а не подбирать индивидуальное содержимое.

Зависит от того, пытаетесь ли вы найти документы, где words содержат оба элемента ( text и here ), используя $all :

 db.things.find({ words: { $all: ["text", "here"] }}); 

или любой из них ( text или here ), используя $in :

 db.things.find({ words: { $in: ["text", "here"] }}); 
  • Алгоритм поиска двух повторяющихся чисел в массиве без сортировки
  • Найдите массив объектов для переменной соответствия входа и проверьте, соответствуют ли они другим полям
  • Общее решение Ruby для SQLite3 «LIKE» или PostgreSQL «ИЛИКЕ»?
  • Как реализовать функцию поиска на веб-сайте?
  • MySQL - Как сделать заказ? Таблица INNODB
  • Реализация бинарного поиска в объектах
  • Использование XPATH для поиска текста, содержащего & nbsp;
  • Как объединить 2 или более запросов в представлении Django?
  • Поиск повторяющихся значений в arraylist
  • Java - регулярное выражение, содержащее комментарии в коде
  • Может ли сырой индекс Lucene загружаться Solr?
  • Давайте будем гением компьютера.