【问题标题】:Mongoid indexes and validationsMongoid 索引和验证
【发布时间】:2019-08-01 08:28:12
【问题描述】:

我有一个 Rails 5 / Mongoid 7 应用程序可以解析文件并将内容添加到数据库。在处理每个文件后,解析需要越来越多的时间,我认为这是因为我在其中一个字段上有一个 validates_uniqueness_of,随着集合变得越来越大,验证需要检查更大的集合,这是有道理的。

所以我认为在该字段上创建索引会有所帮助,但我想知道我是否仍应将validates_uniqueness_of 保留在那里还是应该删除它?

似乎无法在任何地方找到有关此的信息。

型号:

class SomeModel
  include Mongoid::Document
  include Mongoid::Timestamps

  field :some_field, type: String

  index({ some_field: 1 }, { unique: true, name: "some_field_index" })

  validates_uniqueness_of :some_field, { case_sensitive: false }
end

注意:我已经运行了rake db:mongoid:create_indexes,但我还没有尝试新的解析,想知道如何先处理它。

【问题讨论】:

    标签: ruby-on-rails mongodb indexing mongoid


    【解决方案1】:

    所以我已经运行了几个测试,添加索引在处理时间上产生了巨大的差异,我将把我的答案留给后代。

    validates_uniqueness_of 可以删除,尽管现在该字段的唯一性由索引处理,因此在尝试保存文档时不会出现验证错误,而是抛出异常,所以我不得不改变一些处理文档创建的代码,如果您必须处理类似情况,请记住这一点。

    【讨论】:

      猜你喜欢
      • 2012-05-02
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多