我的mongoid参考宏有问题吗?

时间:2011-03-16 00:01:47

标签: mongodb mongoid

Mongoid正在执行的查询对我没有意义,我认为我必须定义一些错误的东西。

但我不知道问题是什么

==Model Definition==
User
  references_many :questions_about, :class_name=>"Question", :inverse_of => :about_user

Question
  references_in :about_user, :class_name=>"User",:inverse_of => :questions_about

控制台:

u=User.find("nazroll")
u.questions_about.map
db['questions'].find({"user_id"=>#010b}, {})

应该执行的正确查询应该是

db['questions'].find({"ABOUT_user_id"=>#010b}, {})

这是因为我将:questions_about的反义定义为:about_user

非常感谢任何提供的帮助 - 撕裂我的头。谢谢!

2 个答案:

答案 0 :(得分:0)

在这种情况下,referenced_in宏会向您的对象添加一个名为about_user_id的字段,它是被引用的BSON::ObjectId的{​​{1}}。 User宏只是使用您调用它的references_many实例中的id为该字段生成查询。

换句话说,您可以将User视为referenced_in,将belongs_to视为references_many

您面临的问题究竟是什么?它没有运行正确的查询吗?

答案 1 :(得分:0)

好吧,实际上是因为我使用的是较早版本的mongoid,实际上是非常严重的错误。

升级到最新版本,一切都很好