【问题标题】:how to get type from key in mongodb collection on ruby on rails如何在 ruby​​ on rails 上从 mongodb 集合中的键获取类型
【发布时间】:2013-05-27 08:34:31
【问题描述】:

最初我导入数据类型为 Hash 的数据,因为我有一个名为 schedule 的列,我需要来自我的数据库的特定列“schedule”的类型。 我尝试过的代码是

       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'

有人知道这个吗?

【问题讨论】:

  • 您没有说您使用的是什么 RoR gem,但 mongo_mapper 或 mongodb gem 都没有定义全局变量“$type”。所以也许它应该是schedule = scheduleWorld.where({schedule:{"$type"=>2}})

标签: ruby-on-rails mongodb


【解决方案1】:

Type 只是 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 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多