Вопрос по использованию $ geoNear дважды в mongodb - PullRequest
1 голос
/ 07 мая 2020

Я хочу сделать запрос mongodb для поиска компаний, применив следующий фильтр.

{
    myLocation: [lng1, lat1], // That is to get distance from current location to companies on result.
    region: [lng2, lat2], //That is to get companies within a radius in this region
    radius: 10000,
    tags: ["tag1", "tag2"],
    sort: "asc" // to sort by nearest from current location.
}

Я подумал, что нужно использовать $ geoNear дважды, и сделал такую ​​агрегацию.

{
    $geoNear: {
        near: {
            type: "Point",
            coordinates: myLocation
        },
        distanceField: 'distance1',
        maxDistance: radius,
        spherical: true,
    },
    $match: { tags: tags },
    $geoNear: {
        near: {
            type: "Point",
            coordinates: region
        },
        distanceField: 'distance2',
        spherical: true,
    }
}

, но возникает ошибка - $ geoNear действует только в качестве первого этапа в конвейере.

Есть ли способ сделать запрос для работы этого фильтра.

Благодарю за вашу помощь.

...