簡體   English   中英

如何使用貓鼬從mongodb中按2個地理點查找?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM