Мне потребовалось немного, чтобы понять это, и я уверен, что другие там тоже любопытно, как это сделать.
У меня есть случай, когда мне нужно запустить .and()
запрос с использованием пользовательского ввода, который я преобразовал в массив. Моя проблема заключалась в том, что запрос искал каждое поле для ОБОИХ слов, которые были прочитаны из ввода.
Rails & Mongoid - Слияние нескольких критериев
ответ
Так что я сделал, это разбил запросы на основе полей. То есть если у вас есть поля :tags, :story, :author
вы бы 3 запросов, tag_query = Book.any_in(:tags => @user_search)
Я создал пустой хэш conditions = {}
Тогда я бы сливаться каждый запрос к conditions
хэш с помощью conditions.merge!(tag_query.selector)
я решил, какие запросы сливаться путем проверки вернулся ли запрос любые Book
документы: tag_query.exists ? conditions.merge!(tag_query.selector) : nil
. Если запрос вернул документ книги, он был объединен с хешем, если не произойдет, тогда ничего не произойдет.
Заключительным шагом является выполнение фактического запроса, о котором мы заботимся. @book = Book.where(conditions)
. Это объединит все запросы, которые действительно нашли что-то и разбив их вместе, как запрос .and()
!
Вместо того, чтобы возвращать 0
, потому что оба слова не были найдены в каждом поле, это разумно объединяет поля, которые действительно что-то нашли и делает это, поэтому он учитывает только то, что оба слова были найдены в документе целиком.
- 1. Как найти встроенные документы Mongoid на основе нескольких критериев?
- 2. Вопрос относительно формирования цепочки нескольких критериев any_of #Mongoid
- 3. получить имя класса из Mongoid критериев
- 4. Mongoid встроенных критериев документа не распознан
- 5. ввести все объекты внутри критериев Mongoid
- 6. Rails & Mongoid уникальные результаты
- 7. Rails datetime_select Mongoid
- 8. Необычный случай Rails Mongoid
- 9. Rails Mongoid `pluck` эквивалент?
- 10. Rails grouped_coolection_select using Mongoid
- 11. Rails mongoid has_one запросы
- 12. Модуль Rails с Mongoid
- 13. Rails Mongoid Ошибка версии
- 14. Heroku rails queueing mongoid
- 15. Rails, mongoid, heroku performance
- 16. SUMIFS для нескольких критериев
- 17. Формула для нескольких критериев
- 18. Функция поиска нескольких критериев
- 19. Создание нескольких критериев Поиск
- 20. Подсчет нескольких критериев
- 21. Обновление нескольких критериев
- 22. Алгоритм поиска нескольких критериев
- 23. ВЫБРАТЬ из нескольких критериев
- 24. rails mongoid запрос нескольких полей с одинаковым значением
- 25. Rails Маршруты для возврата определенных критериев
- 26. Политика областей Rails не принимает дополнительных критериев
- 27. Mongoid and Rails: Вложенные поля
- 28. Установить Mongoid с Rails 3.2.2
- 29. Rails, Mongoid, Devise Профили пользователей
- 30. Ruby On Rails Mongoid Group