2011-01-26 44 views
32

我已成立了一個Rails3中+ mongoid應用程序,當我打開軌道控制檯,沒有發現者似乎工作 - http://d.pr/FNzCMongoid finders不工作?

User.all 
User.find(:all, :conditions => { first_name => "John" }) 

都返回:

#<Mongoid::Criteria 
    selector: {}, 
    options: {}> 

難道我做錯了什麼?

回答

58

好了,這是什麼使mongoid刺激性的新人組成部分。人們希望像User.all這樣的方法在真正返回Criteria對象時實際返回一個數組。

爲了提供可鏈式方法和其他奇特查詢機制的合成糖,Mongoid似乎使用延遲加載類型的東西。

你可以這樣做:

#array index 
User.all[0] 

#first/last 
User.all.first 

#each over things, print out all the users 
User.all.each {|u| p u} 

#edit, I forgot to include this, which is probably what you really want 
#this spits out an array 
User.all.to_a 

這使得它很難迅速覈實事情正在從ActiveRecord的新人,其中User.all只是返回數組。

1

試試這個:

User.all.first   
    User.find(:first, :conditions => {:first_name => 'John'})  
    User.where(:first_name => 'John').first 
+1

這對MongoID不起作用。 – 2013-05-11 21:06:47

+0

User.where不適用於mongoid – harshit 2014-06-20 05:50:10