Объединение отсортированных потоков с разрешением конфликтов

Вы можете использовать этап агрегатного конвейера $geoNear для создания расстояния от запрашиваемой точки:

 db.new_stores.aggregate([
    { "$geoNear": {
        "near": {
            "type": "Point",
            "coordinates": [ -81.093699, 32.074673 ]
        }, 
        "maxDistance": 500 * 1609,
        "spherical": true,
        "distanceField": "distance",
        "distanceMultiplier": 0.000621371
    }}
]).pretty()

Это позволяет указать "distanceField", который будет производить другое поле в выходных документах, содержащих расстояние от запрашиваемой точки. Вы также можете использовать "distanceMultiplier" для применения любого преобразования на выходное расстояние по мере необходимости (т. Е. Метров до миль и отмечая, что все расстояния GeoJSON возвращаются в метрах)

Существует также geoNear ] с аналогичными параметрами, но он, конечно, не возвращает курсор в качестве вывода.

0
задан Dima 15 January 2019 в 22:32
поделиться