我有一个存储坐标的模型,坐标是索引的
class Place
include Mongoid::Document
include Mongoid::Spacial::Document
field :coordinates, type: Array, spacial: true
index({ coordinates: "2d" }, { unique: true })
end
但是,每当我使用一组坐标保存一个地点然后创建另一个坐标时,两个坐标都会被保存。这让我相信坐标的索引不起作用。我在这里缺少什么,我该如何解决?
以下示例。
place = Place.new(coordinates: [50, 50])
place.save # returns true in console
place2 = Place.new(coordinates: [50, 50])
place2.save # returns true in console
# Thus I have two place records with the same exact coordinates, something I don't want
答案 0 :(得分:1)
2d和2dsphere索引类型根本不强制执行唯一约束。我在文档中创建了一个DOCS问题以澄清这一点:https://jira.mongodb.org/browse/DOCS-1701