MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Distância de impressão do MongoDB entre dois pontos


Você pode usar o $geoNear estágio de pipeline agregado para produzir uma distância do ponto consultado:
 db.new_stores.aggregate([
    { "$geoNear": {
        "near": {
            "type": "Point",
            "coordinates": [ -81.093699, 32.074673 ]
        }, 
        "maxDistance": 500 * 1609,
        "spherical": true,
        "distanceField": "distance",
        "distanceMultiplier": 0.000621371
    }}
]).pretty()

Isso permite que você especifique "distanceField" que produzirá outro campo nos documentos de saída contendo a distância do ponto consultado. Você também pode usar "distanceMultiplier" para aplicar qualquer conversão à distância de saída conforme necessário (ou seja, metros para milhas e observando que todas as distâncias GeoJSON são retornadas em metros)

Há também o geoNear comando com opções semelhantes, mas é claro que não retorna um cursor como saída.