2017-05-31 13 views
0

私はmoblieアプリケーションのバックエンドを開発しています。モバイルアプリはGPSのトラッキングを開始/停止することができるので、終わりには何らかのルートオブジェクトがあります。彼らは彼らのGPS座標(lng/lat)を10〜30秒ごとにサーバーに送ります(多分)。問題は、この座標をmongoに保存する最良の方法は何ですか?MongoDBへのルートの保存

私はそれらをたとえばGeoJson LineStringとして保存できますが、ルートが長すぎる場合はどうなりますか?ドキュメントの最大サイズは16Mbですが、私が覚えている限りです。いくつかの更新クエリを使用してこのオブジェクトを動的に更新できますか?私は、アプリケーションが新しいポイントを送信するたびに、dbからすべてのオブジェクトを取り出して新しいポイントを追加して保存せずに、最後に追加することを意味します。

多分、あらゆる点をドキュメントとして保存するのが理にかなっていますか?

+0

16Mbは十分ですが、あなたは思いませんか? – lnaie

答えて

0

あなたはに追加する$pushを使用することができ、あなたの地理座標つまり、あなたが他のいくつかのオプションがあり、それを超えることが感じれば16メガバイト文書のサイズ制限については

db.collection.update({'_id': 'foo'}, {'$push': {'geo_field.coordinates': [999,999]}}) 

  • geopoint(s)とし、他のフィールドを使用して行をグループ化する
  • '$ each'と '$ slice'の組み合わせを使用して、最後のn個の要素に配列のサイズを制限する例here
0

geodnaを参照して、開始座標のジオナと残りのポイントのデルタのみをルートに格納することができます。

関連する問題