Как запросить несколько идентификаторов в 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)
Другие вопросы по тегам