モンゴイドを使ってジオのハッシュ順序を保証する方法はありますか?モンゴイドを使ってジオのハッシュ順序を保証する方法はありますか?
現在、私はそれをこのように保存し、順序を保証するために、コールバックでいくつかの魔法を実行します。
field :location, type: Hash // { :lng => 33.33, :lat => 45 }
set_callback(:save, :before) do |doc|
if doc.location_changed?
doc.location = {lng: doc.location[:lng], lat: doc.location[:lat]}
end
end
はクラスとして、このハッシュを宣言するためのいくつかの方法があるかもしれませ。私はEmbeded Documentについて考えましたが、それは_idです。
注:ここではhttps://github.com/ricodigo/shapado/blob/master/app/models/geo_position.rb
は配列としてMongoDBの中で場所を格納し、私自身の実装です緯度と経度を含むフィールドのサブ文書(「ハッシュ」)ではなく配列を使用する必要があります。http://www.mongodb.org/display/DOCS/Geospatial+Indexing(最初の注釈を参照) – dcrosta
私はこれについて知っています。よりエレガントな方法を探してみてください。 –