当前位置: 首页 > 知识库问答 >
问题:

Spring-MongoDB geonear不使用额外字段

夏侯彬郁
2023-03-14

我在MongoDB中有一些地理空间数据,我想找到靠近用户位置并符合某些标准的地方列表。

下面是我的文档结构:

{ "_id" : { "$oid" : "528af043d1a2760efcd2fd2f" }, "city" : "Miami", "name" : "Some Place", "tickets" : 61, "zipcode" : "33142", "type" : "amusement park", "state" : "FL", "location" : [ -80.24, 25.8092 ]}
{ "_id" : { "$oid" : "528af043d1a2760efcd2fd30" }, "city" : "Miami", "name" : "Other place", "tickets" : 15, "zipcode" : "33150", "type" : "theatre", "state" : "FL", "location" : [ -80.2094, 25.8587 ]}

现在我正试图通过纬度,经度,找到有票可用的,并且是某种类型的地方。当我只使用带坐标的NearQuery(不添加查询)时,我得到的是结果,但当我添加查询对象时,我得到的是空列表。

public GeoResults<Place> find(double lat, double lon, int tickets, String type) {
    Point point = new Point(lon, lat);

    Query query = new Query(Criteria.where("tickets").gt(tickets).
            and("type").is(type));
    NearQuery nearQuery = NearQuery.near(point).maxDistance(new Distance(10, Metrics.KILOMETERS));
    nearQuery.query(query);
    GeoResults<Place> repoData = repo.findByLocationNear(point, new Distance(10, Metrics.KILOMETERS));

    GeoResults<Place> data = mongoTemplate.geoNear(nearQuery, Place.class);         
    List<Place> testData = mongoTemplate.find(query, Place.class);

    return data;
}

提前致谢

共有1个答案

邓浩漫
2023-03-14
Query query = new Query(Criteria.where("tickets").gt(tickets).
            and("type").is(type));
query.fields().include("city").include("name").include("tickets").
include("type").include("state").include("address");

NearQuery nearQuery = NearQuery.near(point).maxDistance(new Distance(radius, Metrics.KILOMETERS));
nearQuery.query(query);
nearQuery.num(100);

GeoResults<Place> data = mongoTemplate.geoNear(nearQuery, Place.class); 
 类似资料:
  • 问题内容: 当使用SQL MIN()函数以及GROUP BY时,是否有任何其他列(不是MIN列或GROUP BY列之一)与匹配的MIN行中的数据匹配? 例如,给定一个包含部门名称,员工名称和薪水的表: 显然,我会得到两个不错的专栏,最低工资和部门。员工名称(和其他任何员工字段)是否来自同一行?即带有MIN(salary)的行? 我知道有可能很可能是两个员工具有相同(最低)的薪水,但我很担心(现在)

  • 问题内容: 我有这两个课(表) 还有这个: 运行此代码后,在数据库(student_course)中创建了一个额外的表,现在我想知道如何在该表中添加额外的字段,例如(Grade,Date和…(我的意思是student_course表)),我看到了一些解决方案,但我不喜欢它们,而且我对它们有一些问题: 第一个样品 问题答案: 如果在链接表(STUDENT_COURSE)上添加额外的字段,则必须根据s

  • 本文向大家介绍mongoDB使用投影剔除‘额外’字段的操作过程,包括了mongoDB使用投影剔除‘额外’字段的操作过程的使用技巧和注意事项,需要的朋友参考一下 简介 实际开发过程中,为便于开发人员定位问题,常存在多个额外的字段。例如:增加createdAt、updatedAt字段以查看数据的创建和更改时间。而对于客户端而言,无需知道其存在。针对以上情况,本文详细介绍了“额外”字段的用途以及处理过程

  • 我有一个我不太明白的情况。当读取以下XML时: 为什么生成空白,而不生成空白?鉴于XML值,我认为它们不应该存在。

  • 这些模块是当前ansible附带的,但是也可能在以后被分开.额外模块主要被社区人员维护.非核心模块仍然是完全可用的,但是在发出和拉取请求时可能收到稍微低的响应速率 受欢迎的的 “extras” 模块将来可能会提升为核心模块 这些额外的模块托管在Github上的,`ansible-modules-extras <http://github.com/ansible/ansible-modules-ex

  • 我知道树的水平顺序遍历的算法。(我想大家都知道)该算法使用队列存储树的节点。有没有不使用额外内存的算法?该算法不能使用递归(这样我们就可以使用堆栈)。注意,该树以左子右同级表示形式给出。不允许使用其他指针 对于树,C中的结构是: 树用指向根节点的指针表示。当然,root不能有正确的兄弟。