Как запросить несколько идентификаторов в Mongoid?
Если у меня есть несколько удостоверений личности, скажем [1,2,3]
Можно ли запросить их все сразу в Mongoid? Такие как:
User.where({ id: [1,2,3]})
или что-то подобное?
2 ответа
Базовый запрос MongoDB, который вы ищете, будет использовать $in
оператор:
Оператор $ in выбирает документы, в которых значение поля равно любому значению в указанном массиве.
В MongoDB вы бы сказали:
db.users.find({ id: { $in: [1,2,3] } })
Это переводится непосредственно на Mongoid как:
User.where(id: { :$in => [1,2,3] })
Mongoid исправляет большинство (все?) Операторов запроса в Symbol
так что вы обычно говорите:
User.where(:id.in => [1,2,3])
Немного опоздал на вечеринку, но вы можете просто передать массив идентификаторов методу find().
User.find(ids)