Mongodb $geonear from joining two collections: Calculate distance from coordinates

179 Views Asked by At

We have mongodb collections

  1. users
{ 
    _id: "1", 
    location: { coordinates: [ -63, 42 ], type: "Point" },
    name: "user one"
},
{ 
    _id: "2", 
    location: { coordinates: [ -83, 52 ], type: "Point" },
    name: "user two"
}
{ 
    _id: "3", 
    location: { coordinates: [ -53, 92 ], type: "Point" },
    name: "user three"
}
  1. userConnect
{ 
    _id: "1", 
    connect1: "1", // ref: 'users'
    connect2: "2" // ref: 'users'
},
{ 
    _id: "2", 
    connect1: "1", // ref: 'users'
    connect2: "3" // ref: 'users'
},

Now we need all connections for an user. As for example user one With distance as well. So result will be like

{ 
    connect1: { user one details from users },
    connect2: { user two details from users }.
    distance: 10
},
{ 
    connect1: { user one details from users },
    connect2: { user three details from users }.
    distance: 14
},

So can you please help here to write a query to get data like above using Mongodb $geonear.

0

There are 0 best solutions below