我正在构建一个rails应用程序,其中集合中的某些文档将具有地理信息。我想在数据库中索引这些文档,以便我可以快速获取具有非null值的文档。我不需要地理值,因此其中一些是空的。索引应仅保存具有非空坐标的记录。地理位置信息的列为latitude
和longitude
。我建立的索引是:
add_index :thing, [:latitude, :longitude]
或者,因为lat和lng将一直存在,所以它可能只是:
add_index :thing, :latitude
但我不确定这是对列的非零值进行索引的最佳策略。
什么是对列的非零值进行索引的最佳策略?
答案 0 :(得分:0)
我在ActiveRecord文档中唯一能找到的就是对索引使用'unique:true'约束。它不允许重复坐标,这将不允许多个[latitude:null,longitude:null]记录。我假设您不需要地理信息,但在提供时会检查纬度和经度。
add_index :documents, [:latitude, :longitude], unique: true