2016-11-25 4 views
0

地理的ポイントの場所のgeoJSONフォーマットに準拠するデータベースコレクションがあります。これにより、d3.jsを使用して表示するためにデータベースからデータを簡単に抽出できます。ジオリファレンスポイントに独自のデータセットが含まれている場合、geoJSONフォーマットに準拠し、MongoDB 2.4.x 2dsphereクエリが許可されるように、この情報を保存する最善の方法は何ですか?ここgeoJSONフォーマットに準拠するようにMongoDB 2.4.xに追加データを格納する方法

はにGeoJSON documentation

{ 
    "type": "Feature", 
    "geometry": { 
    "type": "Point", 
    "coordinates": [123456, 234567] 
    }, 
    "properties": { 
    "arrivalTime": 12345678, 
    "departureTime": 23456789 
    } 
} 

から与えられた例の各行列エントリが値のペアx,y,zによって得ている私は、付加情報のマトリックスを有するこの特定の点、であると仮定する。たとえば、xyが1x10ベクトルの場合、zは10x10の行列です。この点についてはこのタイプの情報を保存する必要がありますが、MongoDB 2.4.xで2dsphereクエリを使用する能力を失いたくないので、私のデータベースコレクションをgeoJSONに適合させて、d3.jsなどの他のライブラリ損失なく相互作用することができます。

答えて

0

GeoJSONオブジェクトをドキュメント内のフィールド内に配置することができます。場所はあなたの例のようにGeoJSONオブジェクトを持っている場合たとえば、あなたはこの場所に関するすべての情報をカプセル化した文書、例えば内部でこの文書を埋め込むことができます。

{ 
    "_id": ObjectId(...), 
    "geo": <GeoJSON object>, 
    "meta": { 
    "x": [1x10 vector], 
    "y": [1x10 vector], 
    "z": [10x10 matrix], 
    "other": <other relevant meta information> 
    } 
} 

することはできまだインデックス指定することによって、MongoDBの中地理場所サブ文書は:

> db.geo.createIndex({'geo.geometry': '2dsphere'}) 

2.4はもうサポートされていないことに注意してください、そしてそこに2.6で2dsphere指数に大きな改善があり、それを超えると、インデックスよりにGeoJSON種類(https://docs.mongodb.com/v3.2/core/2dsphere/#dsphere-version-2を参照)への機能が含まれています。最新のMongoDBのバージョンは現在3.4.0です。

+0

ありがとうございます。バージョンに関しては、Raspbian JessieのMongoDBを使っています。 'apt-get'で利用できる唯一のバージョンは、バージョン2.4.xです。 MongoDBの最新バージョンは、私が知る限り、ARMで正式にサポートされていません。本番環境に移行したら、私は明らかにアップグレードします。私はプロトタイピングの早い段階で足で自分を撃たなかったと確信していました。 – ThatsRightJack

関連する問題