MongoID查询引用引用集合的集合的集合

时间:2011-02-06 20:37:17

标签: ruby ruby-on-rails-3 mongodb devise mongoid

我有一个用户模型,一个锻炼模型和一个锻炼模型。我正在使用Devise进行用户管理,使用MongoID与MongoDB进行交互。

用户 references_many:锻炼
锻炼 references_many:练习 referenced_in:用户
练习 referenced_in:exercise

如何查询数据库,为我提供所有 current_user 练习的列表。我没有在练习集合中存储user.id,只存储了workout.id。

是否可以,或者我应该重新设计模型以在锻炼和锻炼系列中存储user_id?

由于

1 个答案:

答案 0 :(得分:2)

这样的事情怎么样:

workout_ids = Workout.where(:user_id => current_user.id).all.collect {| w | w.id}

exercise = Exercise.where(:workout_id => {“$ in”=> workout_ids})