user_ids = User.only(:_id).where(:foo => :bar).map(&:_id)
Post.where(:user_id.in => user_ids)
Приведенное выше решение отлично работает, когда количество пользователей невелико.Но это потребует много памяти, пока есть тысячи пользователей.
User.only(:_id).where(:foo => :bar).map(&:_id)
создаст список объектов User с nil в каждом поле, кроме id.
Решение (для mongoid 2.5):
User.collection.master.where(:foo => :bar).to_a.map {|o| o['_id']}