ユーザー has_many ミーティングを定義すると、「user_id」キーと値のペアが自動的に作成され、ユーザー コレクションに関連付けられます。nil または [] を返さない限り、この値を使用して mongo_mapper の検索を実行することはできません。
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