2011-04-04 140 views
2

是否有一種通過mongoid檢查現有文檔的首選方法?Mongoid:檢查現有文檔/嵌入式文檔

如果我這樣做Model.find('id')',並且id是零或文檔不存在,它會拋出一個異常......我希望它返回一個空數組。

如果我做Model.where(:id => 'id'),而id是零,它返回所有的文件...我也希望它返回一個空的數組。

然後與Model.criteria(:id => 'id').to_a,無論出於何種原因永遠不會返回結果,即使有一個有效的對象ID。不知道那裏發生了什麼...

但基本上activerecord我會只使用exists?發現者的方法,所以我正在尋找mongoid的替代方案。

+0

什麼Model.find( 'ID')的救助[]? – Roman 2011-04-04 22:33:45

+0

我想這是一種可能性,但根據id是否爲零,或者是否找不到對象,會拋出不同的異常。它在我看來像'Model.find('id')這樣的東西中也不能很好地發揮作用? 'id':'找不到'。 – brewster 2011-04-04 22:57:12

+0

Model.where(:id => id.to_s)怎麼辦? – Roman 2011-04-05 06:33:34

回答

2

在Mongoid 2.0,下面似乎做你想要什麼:

User.all.for_ids('4d9ad01de1607c4bc000001a').entries 
+0

這很好用。謝謝! – brewster 2011-04-06 01:24:17