将MongoDb id设置为整数

时间:2017-10-04 11:27:25

标签: ruby-on-rails mongodb

我想使用ID的整数值,所以我将我的模型更新为:

class Word
  include Mongoid::Document

  field :id,           type: Integer
  field :name,         type: String

  before_create :assign_id

  private

  def assign_id
    self.id = Word.count.to_i + 1
  end

end

唯一的缺点,我能想到的是,我必须确保我正确处理删除。所以任何其他具有此id的表都会在destroy上更新。但除此之外它可以工作,但这可能会有任何问题吗?

1 个答案:

答案 0 :(得分:1)

不建议使用mongodb的_id属性,主要是因为这比我们假设的包含创建时间,主机等作为哈希的信息更多,当然这是默认索引的。 有关详细信息,请参阅:

https://docs.mongodb.com/manual/reference/bson-types/#objectid

我们当然可以在我们的json文档中有另一个属性,我们可以将它们用作整数序列。 虽然没有限制覆盖系统为_id生成的哈希值。