MongoDB中的索引坐标不起作用

时间:2013-07-11 22:14:43

标签: ruby mongodb indexing sinatra mongoid

我有一个存储坐标的模型,坐标是索引的

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

1 个答案:

答案 0 :(得分:1)

2d和2dsphere索引类型根本不强制执行唯一约束。我在文档中创建了一个DOCS问题以澄清这一点:https://jira.mongodb.org/browse/DOCS-1701