【发布时间】: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