MongoDB のコレクションに場所の値を挿入する方法を探しています。MongoDB JAVA ドライバーを使用しています。残念ながら、私はそうすることができません。
コレクションは適切に索引付けされています。ここでの問題は、コレクションが double 値を保持する配列の形式で場所を受け入れることです。しかし、実際のコンテンツではなく配列の参照のみが送信されるため、配列を直接送信する方法があるかどうかはわかりません。
コードは double latLong[] = {124.6682391, -17.8978304}; の下にあります。final BasicDBObject loc = new BasicDBObject(); loc.put("タイプ","ポイント"); loc.put("座標", latLong);
jsonObject.put("location", loc);
印刷しようとしたときに追加した後、次の出力が得られます。
"location" : { "type" : "Point" , "coordinates" : "[D@53e21fa6"}
これにより、「オブジェクトから地理キーを抽出できません。ジオメトリの形式が正しくありませんか?:」というエラーが発生します。
場所を配列リストとして送信しようとしました。しかし、これは再び値を次のように保存します
"location" : { "type" : "Point" , "coordinates" : "[144.6682362, -37.8978302]"}
しかし、そうではありません
"location" : { "type" : "Point" , "coordinates" : [144.6682362, -37.8978302]}
これにより、「オブジェクトから地理キーを抽出できません。ジオメトリの形式が正しくありませんか?:」というエラーが発生します。
Arrays.toString((latLong)) も試しました
これにより、
" location" : { "type" : "Point" , "coordinates" : "[144.6682362, -37.8978302]"}
したがって、同じエラーが再び発生します。
以下の URL には、これを達成できないと書かれています。 https://groups.google.com/forum/#!topic/mongodb-user/TUjAxag6yT4
しかし、私の脳の一部はまだ方法があるべきだと言っています.
JSON オブジェクトを DBObject に変換することで、位置オブジェクト (double 値を保持する配列) を JSON オブジェクトに追加し、それによってコレクションに追加する方法はありますか?
ネイティブ コードに固執したいので、POJO ライブラリを探しているわけではありません。何もできない場合は、POJO ライブラリにジャンプするかもしれません。