spring-data-mongo根据两个经纬度之间距离进行排序

将数据(数据中带有经纬度字段)存入mongo中,在根据传入的经纬度与存在mongo中数据的经纬度做距离比较进行排序

  1. 实体类
// document注解是指定mongo中那个表
@Data
@Document("scenery")
public class SceneryResult {

    private Integer SceneryID;
    private String SceneryName;
    private Integer SceneryGrade;
    private String SceneryAddress;
    private String SceneryProvinceName;
    private String SceneryCityName;
    private String ScenerySummary;
    @GeoSpatialIndexed
    private Double[] Location;//地理位置
    @Transient
    private String SceneryLongitude;//经度(坐标) 高德坐标系
    @Transient
    private String SceneryLatitude;//纬度(坐标)
    private String TicketType;
    private String TicketTypeName;
    private String SceneryAliasName;
  1. 将数据存入mongo中
        // 获取到的数据
        List result = (List)baseResponse.getResult();
        for (int i = 0; i < result.size(); i++) {
 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Data MongoDB 中,`MongoWriter` 接口用于将对象转换为 MongoDB 文档并插入到集合中。`doInsertBatch` 方法是 `MongoTemplate` 类中的一个方法,用于批量插入数据。 下面是一个简单的示例,展示了如何使用 `MongoWriter` 和 `doInsertBatch` 方法将对象批量插入到 MongoDB 集合中: ```java public class Person { private String name; private int age; // getters and setters } public class PersonWriter implements MongoWriter<Person> { @Override public Document toDocument(Person object, MongoConverter converter) { Document document = new Document(); document.put("name", object.getName()); document.put("age", object.getAge()); return document; } } public class PersonDao { private MongoTemplate mongoTemplate; public void insertBatch(List<Person> persons) { mongoTemplate.execute(Person.class, collection -> { List<Document> documents = new ArrayList<>(); for (Person person : persons) { MongoWriter<Person> writer = new PersonWriter(); Document document = writer.toDocument(person, mongoTemplate.getConverter()); documents.add(document); } collection.insertMany(documents); return null; }); } } ``` 在上面的示例中,`PersonWriter` 类实现了 `MongoWriter` 接口,并重写了 `toDocument` 方法,将 `Person` 对象转换为 MongoDB 文档。`PersonDao` 类中的 `insertBatch` 方法使用 `MongoTemplate` 的 `execute` 方法执行 MongoDB 操作。在该方法内部,首先将传入的 `Person` 对象列表转换为 MongoDB 文档,并将这些文档存储在 `documents` 列表中。最后,使用 `collection.insertMany` 方法将文档批量插入到 MongoDB 集合中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值