【问题标题】:MongoID query for a collection that references a collection that references a collection引用集合的集合的 MongoID 查询
【发布时间】:2011-02-06 20:37:16
【问题描述】:

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

用户 references_many :workouts
锻炼 references_many :exercisesreferenced_in :user
锻炼referenced_in:锻炼

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

是否有可能,或者我应该重新设计模型以将 user_id 存储在锻炼和锻炼集合中?

谢谢

【问题讨论】:

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


    【解决方案1】:

    这样的事情怎么样:

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

    exercises = Exercise.where(:workout_id => { "$in" => exercise_ids })

    【讨论】:

    • 谢谢,但我收到一条错误消息,指出我无法序列化类用户的对象:d.pr/myTZ
    • 我更新了示例以传递“current_user.id”而不是“current_user”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-03
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多