做不好设定的MongoDB的ID为整数

问题描述:

我想用整数值ID,所以我在我的模型更新,以这样的:做不好设定的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的表都会被更新,销毁。但除此之外它可以工作,但是可以通过这样做来解决问题吗?

+0

是的,使它简短..如果你这样做,你可能没有一个唯一的密钥来查找_id .in mongo我们没有任何主键,除了_id,直到我们将数据设置为唯一值 – Vignesh

不建议玩弄mongodb的_id属性,本质上是因为它比我们所设想的包含创建时间,主机等作为散列的信息更多,当然这是默认索引的。 更多的信息,您可以看到:

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

我们当然可以有我们的JSON文件中的另一个属性,我们可以作为一个整数序列使用。 尽管在覆盖系统生成的_id散列方面没有限制。