【问题标题】:Mongodb geonear query in JavaJava中的Mongodb地理查询
【发布时间】:2012-07-30 15:32:33
【问题描述】:

如何在 Java 中运行这个 mongodb 命令 geonear

 db.runCommand ({ geoNear : "mycollection", near : [ -121.97679901123047,37.557369232177734],球形:true,maxDistance:50 / 3959 /* 弧度 */,查询:{ {"myuserid" : "att"},{"_id":{$in: [ObjectId("4fda8fbbe7e96e2d775595d")] }}] }   } );

我正在使用 Commandresult 在 java 中尝试此操作,但出现错误。

这是我到目前为止所做的,虽然命令打印正确,但得到空指针异常。我是 Java 和数据库的新手。

BasicDBObject myCmd = new BasicDBObject(); 
myCmd.append("geoNear", "mycollection"); 
double[] loc = {-121.97679901123047,37.557369232177734}; 
myCmd.append("near", loc); 
myCmd.append("spherical", true); 
myCmd.append("maxDistance", (double)50 / 3959 ); 
System.out.println(myCmd); 
CommandResult myResults = db.command(myCmd); 
System.out.println(myResults.toString());

提前致谢。

【问题讨论】:

  • 解决方案是修复您的代码。不客气。 (提示:向我们显示错误消息以获得更详细的答案。)
  • 这是我到目前为止所做的,虽然命令打印正确,但得到空指针异常。我是 Java 和数据库的新手。 [BasicDBObject myCmd = new BasicDBObject(); myCmd.append("geoNear", "mycollection");双[] loc = {-121.97679901123047,37.557369232177734}; myCmd.append("近", loc); myCmd.append("球形", true); myCmd.append("maxDistance", (double)50 / 3959 ); System.out.println(myCmd); CommandResult myResults = db.command(myCmd); System.out.println(myResults.toString());]
  • 也许检查 myResults 不为空?它在哪里抛出异常?什么线路?
  • 您提供的上下文越多,就越容易为您提供帮助。如果您没有提供尽可能多的信息,那么很难想到您的代码可能存在的所有问题。请再解决这个问题。
  • 我同意,空指针位于 CommandResult,尽管我可以在 mongodb 命令提示符下运行相同的操作。 {“geoNear”:“mycollection”,“near”:[-121.97679901123047,37.557369232177734],“球形”:true,“maxDistance”:0.01262945188178833} java.lang.NullPointerException at com.java87Resource.getxxx(xxxesource)

标签: java mongodb geospatial


【解决方案1】:

我能够找出我的问题。未连接到正确的数据库。感谢你的帮助。地理查询现在工作正常。谢谢。

【讨论】:

  • 和你一样的例外和同样的错误,感谢你花时间写下你犯的错误作为答案。
猜你喜欢
  • 2014-08-23
  • 2018-09-28
  • 2015-06-07
  • 2011-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-23
相关资源
最近更新 更多