我正在寻找一种将位置值插入到 MongoDB 中的集合的方法。我正在使用 MongoDB JAVA 驱动程序。不幸的是,我不能这样做。
该集合已正确索引。这里的问题是集合以包含双值的数组的形式接受位置。但我不确定是否有办法直接发送数组,因为只发送数组的引用而不发送实际内容。
代码低于 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 来将位置对象(这是一个包含双值的数组)添加到 JSON 对象,从而添加到集合中吗?
我不是在寻找 POJO 库,因为我想坚持使用我的本机代码。如果无能为力,我可能会跳到 POJO 库。