我应该将我的facebook_ids存储为整数还是作为字符串存储在mongo中?

时间:2012-06-14 02:53:10

标签: ruby-on-rails ruby-on-rails-3 mongodb mongoid

我有以下(使用mongoid):

class FacebookUser
  include Mongoid::Document
  include Mongoid::Timestamps    
  field :uid,   type: String
  field :friends,   type: Array
end

我正在使用mongoid,我想知道是否将facebook_ids和facebook_ids_of_friends(Array)存储为BigDecimal,Integer或String。我将使用uid查询,所以我有点担心速度。

OR:

class FacebookUser
  include Mongoid::Document
  include Mongoid::Timestamps    
  field :uid,   type: Integer
  field :friends,   type: Array  #???How do I get this to store ints instead of strings
end

为了避免重复投掷,我相信第一种选择更好但是想获得另一种观点?另外,如果我使用选项2,我将如何使用Integer存储数组?

2 个答案:

答案 0 :(得分:2)

使用字符串。使用数字类型的唯一原因是您将对数据进行计算。尝试添加两个用户ID是没有意义的,因此不应将它们存储为整数。

答案 1 :(得分:1)

试试这个

class FacebookUser

    identity :type => String

end

由于行identity :type => String,您的模型ID将变为String类型,您可以直接在其中保存Facebook用户ID(uid),而不是创建新字段。查找用户等查询非常简单快捷

例如

找一个用户

FacebookUser.find(facebook user id)