Сложный запрос монго! Активная модель для монгоида - PullRequest
0 голосов
/ 20 сентября 2011

В моем приложении rails 3 я использую монго и монгоидный камень с 3 моделями: (пользователи, дружба, посты).

Мне нужно получить все сообщения от конкретного пользователя и его подписчиков. В традиционных рельсах db будет примерно таким:

Posts.find(:all, :conditions => ["user_id in (?)", friends.map(&:id).push(self.id)], :order => "created_at desc")

Как я могу это сделать в монго?

На самом деле я не знаю, как использовать что-то вроде «карта» и «толчок».

Заранее спасибо!

1 Ответ

0 голосов
/ 20 сентября 2011

Получил http://mongoid.org/docs/querying.html

Posts.where(:user_id => your_user_id).first.friends

Тогда вы можете сделать любую карту на друзей, которых вы хотите.

Итак, глядя на свои модели, вы можете сделать:

 Post.all_in(:user_id => [your_user.id, your_user.friends.map(&:id)].flatten )

Это вернет все сообщения этого пользователя и его друзей

...