如何解决Mongo db 按计算排序
在对给定节点端点的请求中,我从 request.query 获取地图位置的中心。我想通过径向距离找到最接近该点的前 100 个响应。为此,我需要对每个点使用勾股定理,然后按升序对结果进行排序。我无法理解聚合管道的工作原理和传递变量等...
每个房子都有一个关键位置,其中包含关键的经度和纬度:
Home:{
other keys...,location: {
longitude: {
type: Number,required: true,},latitude: {
type: Number,}
每个房子的距离计算:
((location.longitude - centerLongitude)^2 + (location.latitude - centerLatitude)^2)^(1/2)
const centerLongitude = 53.23212 //number that comes back from req.query
const centerLatitude = 53.23212 //number that comes back from req.query
Houses.aggregate([
{ $match: {} },{
$project: {
$longdistanceSqrd: {
$pow: [{ $subtract: ["$location.longitude",centerLongitude] },2],$latdistanceSqrd: {
$pow: [{ $subtract: ["$location.latitude",centerLatitude] },{
$sort: {
$sqrt: {
$distance: {
$sum: [$latdistanceSqrd,$longdistanceSqrd],])
提前为帮助干杯
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。