查詢文檔中嵌入式文檔的好方法是什麼?例如,我的用戶文檔具有嵌入的警報文檔。如果我想看看如果給定的用戶有一個警報,名字我可以做兩種方式,據我可以告訴 - 在內存中拉使用MongoMapper查詢文檔中的嵌入式文檔
alert = current_user.alerts.select{|a| a.name == params[:name]}.first
或通過實際的文檔界面LA(請注意,我不是100%肯定這是語義上有效,但你明白了吧):
User.where('alerts.name' => params[:name], :id => current_user.id).first
必須有一個更好的辦法,像
current_user.alerts.where(:name => params[:name])
也許?或者,也許我只是沒有考慮這個問題吧?
對不起,我不能直接(沒有足夠的經驗,映射器)回答你的問題,但看[勇敢的(https://開頭的github的.com/jnunemaker /勇敢的)。它是MongoDB之上的一個查詢語言,也許它可以爲你提供更簡潔的語法。 – 2011-05-25 16:40:19