mongodb near java_mongodb - 使用查询类的java mongodb geonear - 堆栈内存溢出

我试图在不使用聚合的情况下找到接近某个点的文档。我想使用NearQuery或Query类或任何其他类。

我尝试了以下查询,但出现异常

1)

NearQuery n=NearQuery.near(user.getLoc().get(0),user.getLoc().get(1));

GeoResults results=mongoTemplate.geoNear(n,User.class,"User4",User.class);

2)

Point point= new Point(77.6672961,13.0257889);

Query query= new Query(Criteria.where("loc").nearSphere(point));

List nearbyusers=mongoTemplate.find(query, User.class,"User4");

3)

Point p=new Point(13.0257889,77.6672961);

Query q=new Query(Criteria.where("loc").near(p));

List i=mongoTemplate.find(q,User.class,"User4");

例外:

org.springframework.data.mongodb.UncategorizedMongoDbException: Command failed with error 2 (BadValue): 'error processing query: ns=CitizenChat4.User4 limit=100Tree: GEONEAR field=loc maxdist=1.79769e+308 isNearSphere=0

Sort: {}

Proj: { $pt: { $meta: "geoNearPoint" }, $dis: { $meta: "geoNearDistance" } }

planner returned error: unable to find index for $geoNear query' on server localhost:27017. The full response is { "ok" : 0.0, "errmsg" : "error processing query: ns=CitizenChat4.User4 limit=100Tree: GEONEAR field=loc maxdist=1.79769e+308 isNearSphere=0\nSort: {}\nProj: { $pt: { $meta: \"geoNearPoint\" }, $dis: { $meta: \"geoNearDistance\" } }\n planner returned error: unable to find index for $geoNear query", "code" : 2, "codeName" : "BadValue" }; nested exception is com.mongodb.MongoCommandException: Command failed with error 2 (BadValue): 'error processing query: ns=CitizenChat4.User4 limit=100Tree: GEONEAR field=loc maxdist=1.79769e+308 isNearSphere=0

Sort: {}

Proj: { $pt: { $meta: "geoNearPoint" }, $dis: { $meta: "geoNearDistance" } }

planner returned error: unable to find index for $geoNear query' on server localhost:27017. The full response is { "ok" : 0.0, "errmsg" : "error processing query: ns=CitizenChat4.User4 limit=100Tree: GEONEAR field=loc maxdist=1.79769e+308 isNearSphere=0\nSort: {}\nProj: { $pt: { $meta: \"geoNearPoint\" }, $dis: { $meta: \"geoNearDistance\" } }\n planner returned error: unable to find index for $geoNear query", "code" : 2, "codeName" : "BadValue" }

at org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExceptionIfPossible(MongoExceptionTranslator.java:138)

at org.springframework.data.mongodb.core.MongoTemplate.potentiallyConvertRuntimeException(MongoTemplate.java:2756)

at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:510)

User4集合:

"userID" : "1",

"user_Email" : "ghjkl@gmail.com",

"loc" : [

77.618843,

13.052758

]

"userID" : "2",

"user_Email" : "abc@gmail.com",

"loc" : [

77.618743,

13.054518

]

我已经在user4集合中的loc属性上创建了2dsphere索引。

指数:

{

"v" : 2,

"key" : {

"loc" : "2dsphere"

},

"name" : "loc_2dsphere",

"ns" : "CitizenChat4.User4",

"2dsphereIndexVersion" : 3

}

请帮助我。谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值