1

我有以下(使用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 进行查询,所以有点担心速度。

或者:

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,我将如何使用整数存储数组?

4

2 回答 2

2

Use a string. The only reason to use numeric types is if you will be doing calculations on the data. It is nonsensical to try to add two user id's so they should not be stored as integers.

于 2012-06-18T09:00:34.687 回答
1

试试这个

class FacebookUser

    identity :type => String

end

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

例如

找一个用户

FacebookUser.find(facebook user id)
于 2012-06-14T05:41:25.787 回答