MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Cách lấy khoảng cách - Chức năng gần của Mẫu MongoDB

Bạn có thể làm điều đó với tổng hợp geoNear . Trong spring-data-mongodb GeoNearOperation đang đại diện cho tập hợp này.

Mở rộng hoặc tạo kế thừa Place lớp với trường mà bạn muốn có thông tin khoảng cách (ví dụ với kế thừa):

public class PlaceWithDistance extends Place {
    private double distance;

    public double getDistance() {
        return distance;
    }

    public void setDistance(final double distance) {
        this.distance = distance;
    }
}

Thay vì Criteria với Query sử dụng tập hợp. Đối số thứ hai của geoNear là tên của trường mà khoảng cách sẽ được đặt:

final NearQuery nearQuery = NearQuery
    .near(new Point(searchRequest.getLat(), searchRequest.getLng()));
nearQuery.num(5);
nearQuery.spherical(true); // if using 2dsphere index, otherwise delete or set false

// "distance" argument is name of field for distance
final Aggregation a = newAggregation(geoNear(nearQuery, "distance"));

final AggregationResults<PlaceWithDistance> results = 
    mongoTemplate.aggregate(a, Place.class, PlaceWithDistance.class);

// results.forEach(System.out::println);
List<PlaceWithDistance> ls = results.getMappedResults();

Chỉ để làm cho nó dễ dàng hơn - nhập được liên kết:

import static org.springframework.data.mongodb.core.aggregation.Aggregation.geoNear;
import static org.springframework.data.mongodb.core.aggregation.Aggregation.newAggregation;

import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationResults;
import org.springframework.data.mongodb.core.aggregation.GeoNearOperation;
import org.springframework.data.mongodb.core.query.NearQuery;


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Giao dịch Mongoose.js

  2. Làm thế nào để chuyển đổi trực tiếp Tài liệu MongoDB do Jackson JsonNode trong Java

  3. MongoDB $ trim

  4. Tìm một chuỗi trong một chuỗi trong SQL

  5. MongoDb Tồn tại trên mỗi cột