Bạn có thể sử dụng $geoNear
giai đoạn đường ống tổng hợp để tạo ra khoảng cách từ điểm được truy vấn:
db.new_stores.aggregate([
{ "$geoNear": {
"near": {
"type": "Point",
"coordinates": [ -81.093699, 32.074673 ]
},
"maxDistance": 500 * 1609,
"spherical": true,
"distanceField": "distance",
"distanceMultiplier": 0.000621371
}}
]).pretty()
Điều này cho phép bạn chỉ định "distanceField"
sẽ tạo ra một trường khác trong tài liệu đầu ra có chứa khoảng cách từ điểm được truy vấn. Bạn cũng có thể sử dụng "distanceMultiplier"
để áp dụng bất kỳ chuyển đổi nào cho khoảng cách đầu ra theo yêu cầu (tức là từ mét sang dặm và lưu ý rằng tất cả các khoảng cách GeoJSON đều được trả về bằng mét)
Ngoài ra còn có geoNear
lệnh với các tùy chọn tương tự, nhưng tất nhiên nó không trả về con trỏ làm đầu ra.