[英]How to find by 2 geopoints from mongodb using mongoose?
我正在研究一個項目,使用NodeJS(mongoose驅動程序)將MongoDB作為數據庫,並將Angular 6放在前面。 我們需要實現一些功能,以便按2個geoPoints搜索某些數據。 實際上,我找不到任何信息,該如何在mongo中存儲2個點並以此點查找。
我在貓鼬文檔中找到了一些有關使用$ near查詢GeoJSON的信息,但它只搜索一點。
我相信,您需要比MongoDB可能提供的更高級的空間功能。 如果您正在尋找一種方法來查找到2個給定點的總距離最小的點(以后可能需要其他空間數據計算),則建議使用PostGIS(PostgreSQL空間附加組件)或一些javascript MongoDB頂部的庫來發布處理GeoJSON數據。
非常感謝! 看起來我應該更深入地查找文檔)下面的代碼是幫助我解決問題的方式:
Way.aggregate(
[{
$match: {
'origin.coordinates': {
$geoWithin: { $centerSphere: [ [ origin.lat, origin.lng ], 0.2/6378.1 ] }
},
'destination.coordinates': {
$geoWithin: { $centerSphere: [ [ destination.lat, destination.lng ], 0.2/6378.1 ] }
}
}
}], function(error, results){
Way.populate(results, {path: 'user'}, function(err, ready){
});
}
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.