当我定义User has_many meetings时,它会自动创建一个“user_id”键/值对来关联User集合。除了我不能运行任何mongo_mapper发现使用这个值,没有它返回nil或[]。
Meeting.first(:user_id =>“1234”)
Meeting.all(:user_id =>“1234”)
Meeting.find(:user_id =>“1234”)
全部返回nil。还有别的语法吗基本上我不能在自动生成的关联ObjectId上运行查询。
# Methods
class User
include MongoMapper::Document
key :user_name, String, :required => true
key :password, String
many :meetings
end
class Meeting
include MongoMapper::Document
key :name, String, :required => true
key :count, Integer, :default => 1
end
# Sinatra
get '/add' do
user = User.new
user.meetings "foobar") #should read: Meeting.new(:name => "foobar")
user.save
end
get '/find' do
test = Meeting.first(:user_id => "4b4f9d6d348f82370b000001") #this is the _id of the newly create user
p test # WTF! returns []
end
3条答案
按热度按时间lh80um4z1#
正如Jimmy提到的检查会议。所有,我不认为你会有任何东西。
根据上面的例子,我看到了一些潜在的问题。
这适用于mongo_mapper 0.6.10
你可能已经知道了,但我希望这对你有帮助。
q35jwt9p2#
您可以尝试使用
此外,如果您运行script/console,那么Meeting.all是否会显示每个记录都分配了user_id?
hvvq6cgz3#
如何使用User.find(“1234”).meetings?