搜索

首页  >  问答  >  正文

连接mongodb,查询地理位置的问题

com.mongodb.MongoException: can't find any special indices: 2d (needs index), 2dsphere (needs index), for: { position: { $nearSphere: [ 120.344944, 36.067463 ] } }
at com.mongodb.QueryResultIterator.throwOnQueryFailure(QueryResultIterator.java:214)
at com.mongodb.QueryResultIterator.init(QueryResultIterator.java:198)
at com.mongodb.QueryResultIterator.initFromQueryResponse(QueryResultIterator.java:176)
at com.mongodb.QueryResultIterator.(QueryResultIterator.java:64)
at com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:86)
at com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:66)
at com.mongodb.DBCursor._check(DBCursor.java:458)
at com.mongodb.DBCursor._hasNext(DBCursor.java:546)
at com.mongodb.DBCursor.hasNext(DBCursor.java:571)

我已经利用
db.PostCo.createIndex( { location : "2dsphere" } )
db.PostCo.createIndex( { location : "2d" } )
创建相应的索引。
还是无法正常工作。

巴扎黑巴扎黑2796 天前776

全部回复(3)我来回复

  • 黄舟

    黄舟2017-04-25 09:05:38

    db.PostCo.ensureIndex( { location : "2dsphere" } )
    

    mongodb,2d搜索,我记得好像是这么创建索引的,看你的错误是在java中用的第三方包报错了?在mongodb命令行中查询正常吗?

    回复
    0
  • PHPz

    PHPz2017-04-25 09:05:38

    db.PostCo.ensureIndex({"location":"2d"},{min:0,max:200})试试。

    回复
    0
  • 给我你的怀抱

    给我你的怀抱2017-04-25 09:05:38

    推荐使用https://github.com/T-baby/Mon...,可以参考文档https://t-baby.gitbooks.io/mo... 来实现地理位置查询,MongoDB-Plugin简化了原生写法所以看一遍就可以上手了

    回复
    0
  • 取消回复