Я использую Mongoid для доступа к базе данных MongoDB, однако я столкнулся с нечетной проблемой. Похоже, что я могу запросить только для записей с помощью find_by
как find
всегда будет возвращать ноль:Mongoid «find» возвращает нуль, когда «find_by» извлекает запись
invoices = Invoice.find({})
p "invoices"
p invoices
puts ''
invoice = Invoice.find_by({ _id: <ObjectId> })
p "invoice"
p invoice
puts ''
Второй запрос с использованием find_by
будет возвращать одну запись. Согласно the documentation, find
должен возвращать каждую запись, которая удовлетворяет запросу.
Есть ли у кого-нибудь идеи, что может быть причиной этого?
Я не обязательно хочу найти каждую запись, я хочу найдите каждую запись, которая удовлетворяет запросу MongoDB. «Find» не поддерживает запросы за пределами find by _id? –
На самом деле после повторного чтения документов я неправильно понял, как это работает (IE больше действует как 'findById'). Благодаря! –
Если ваш запрос прост, вы можете разбить его на атрибуты, которые нужно пройти, чтобы найти их. Для более сложных запросов вам необходимо прочитать DSL и, вероятно, переключиться на вызов **, где ** в вашей коллекции. [Запросы] (http://mongoid.github.io/en/mongoid/docs/querying.html#queries) – p80n