イベントベースのアプリケーションに Mongoid で Rails 4 を使用しています。その配列にドキュメントが埋め込まれた配列フィールドを追加するモデルを作成しようとしています。この埋め込みドキュメントには、ユーザーの地理座標とタイムスタンプが含まれます。5 分ごとに、ユーザーの最新の座標をユーザーの (場所) 配列にプッシュします。誰かが私を助けてくれませんか、どうすればそれを作成できますか。
私のサンプルモデルと必要なドキュメントは次のとおりです。
class User
include Mongoid::Document
field :name, type: String
field :locations, type: Array
end
ここで押したい
結果として探しているサンプルドキュメントは次のとおりです。
{ _id : ObjectId(...),
name : "User_name",
locations : [ {
_id : ObjectID(...),
time : "...." ,
loc : [ 55.5, 42.3 ]
} ,
{
_id : ObjectID(...),
time : "...",
loc : [ -74 , 44.74 ]
}
]
}
IRB を介して埋め込みドキュメントなしで場所配列に値を追加できましたが、後で MongoDB の地理空間クエリを使用するため、2D インデックスと残りの Mongo ドキュメントに記載されているものを使用したいと考えています。したがって、緯度と経度を含むドキュメントの配列が必要だと思います。これにより、コーディングの時間も節約できます。
また、場所の時刻をドキュメント '_id' にすることはできますか? (クエリのオーバーヘッドを減らすのに役立ちます)
誰かが私が書くべきモデルの構造について私を助けてくれるか、参考文献に私を案内してくれるなら、私は本当に感謝しています.
PS: 地理空間データを mongoDB に保存することについて、参考になる情報やヘルプがあれば教えてください。