3

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 ライブラリにジャンプするかもしれません。

4

2 に答える 2