0

座標を格納するモデルがあり、座標にはインデックスが付けられています

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
4

1 に答える 1

1

2d および 2dsphere インデックス タイプは、一意の制約をまったく適用しません。ドキュメントでこれを明確にするために DOCS の問題を作成しました: https://jira.mongodb.org/browse/DOCS-1701

于 2013-07-12T08:31:22.787 に答える