Я пытался это некоторое время, и пришел к выводу, что это может быть ошибка в драйвере Монго или что-то в этом роде, но для меня это не имеет смысла.
Модель:
class Container
include Mongoid::Document
embeds_many :subs
...
end
class Sub
include Mongoid::Document
embedded_in :container
references_and_referenced_in_many :stuffs
...
end
Это позволяет мне делать такие запросы:
Container.where(:'subs.stuff_ids' => BSON::ObjectId('xxxx'))
или
Container.where(:'subs.stuff_ids'.in => [BSON::ObjectId('xxxx'), BSON::ObjectId('yyyy')])
Все это прекрасно работает и дает правильные результаты.
Это означает, что эти запросы должны дать мне доступ к соответствующим документам:
Container.subs.where(:stuff_ids => BSON::ObjectId('xxxx'))
=> Работает, возвращает список правильных сабов
НО
Container.subs.where(:stuff_ids.in => [BSON::ObjectId('xxxx'), BSON::ObjectId('yyyy')])
=> ВСЕГДА возвращает 0 подпрограмм ... это не имеет смысла, так как тот же запрос к "контейнерам" возвращает правильный список контейнеров с сопоставлениями подпрограмм, но запрос подпрограмм из данного "контейнера" никогда не работает с использованием " $ в "
пс:
это включено: Rails 3.0.10, Mongoid 2.2.0 и Mongo Driver: 1.4.0
Есть идеи?