2012-06-04 44 views
1

我有一個使用MongoDB的Rails 3應用程序,Mongoid作爲ORM。我想查詢集合中的特定字段。如何查詢Rails控制檯中特定的MongoDB集合字段?

要查詢特定集合的所有記錄,我使用User.all.to_a作爲ActiveRecord中的User.all的等效項。

現在我想查詢一個集合中的所有記錄,但只輸出一個特定的字段。在這種情況下,我想看到所有的用戶名。我該怎麼做呢?

我敢肯定,我的Mongoid文檔中正確地盯着這個,我只是失去了一些東西......

回答

1

爲mongoid新文檔中我無法找到它,但這裏是一個快速鏈接到only指向舊的2.xx文檔。

基本上你需要做的:

User.all.only(:name).to_a 
+1

並沒有爲我工作...'都User.all.only(:名稱).to_a'和'User.only(:名稱).to_a將所有用戶文檔(包括所有相關字段)的數組轉儲出來。 如果做一些像'User.all.distinct(:name)'那麼它只給出適當的:name字段的輸出。不知道爲什麼你的建議不起作用。似乎它應該... – Joe

+0

這就是它在Mongoid中的工作方式,你將不會回到只有字段,值,但每個文件只有該字段填充。你總是可以映射數組,但這可能是低效的,取決於你的上下文。例如:'User.only(:name).all.to_a.map {| u | u.name}'。 – theTRON

+0

@ J.Venator使用'only',只有指定的字段以db的形式返回文檔,並且mongoid將它們包裝在Model實例中。 'distinct'但是隻返回指定值的數組。可能是我誤解了這個問題,你需要「獨特」 – rubish

相關問題