2013-05-31 54 views
4

最初我導入數據的數據類型哈希,因爲我有一個名爲schedule的列,我需要從我的數據庫中的特定列「日程表」的類型。 我試圖代碼如何從鍵上的紅寶石mongodb集合中的鍵獲取類型

 schedule = scheduleWorld.all 
     schedule.each do |sec|   
     sec.attributes.each do |key, value, type| 
     puts "%%%%%%%%%%%%%%%%%%%%%%%%%" 
     puts key 
     puts value 
     puts type 
     puts "%%%%%%%%%%%%%%%%%%%%%%%%%" 
     end 
     end 

通過這個我在類型越來越零,我嘗試另一個代碼是

schedule = scheduleWorld.where({schedule:{$type=>2}}) 

誤差

undefined method `specify' for nil:NilClass 
(eval):2:in `where' 

任何人有這個想法?

+1

你不會說你正在使用什麼RoR寶石,但是mongo_mapper或mongodb gem都沒有定義全局變量'$ type'。所以也許它應該讀取'schedule = scheduleWorld.where({schedule:{「$ type」=> 2}})'' – jimoleary

回答

0

類型只是MongoDB文檔屬性哈希中的一個鍵值對。 所以你總是可以像這樣抓取它。我正在使用Mongoid。 確切名稱可能因您的ORM而異。

 schedule = scheduleWorld.all 
     schedule.each do |sec| 
     type = sec.attributes["_type"]   
     sec.attributes.each do |key, value| 
     puts "%%%%%%%%%%%%%%%%%%%%%%%%%" 
     puts key 
     puts value 
     puts "%%%%%%%%%%%%%%%%%%%%%%%%%" 
     end 
     end