Я разрабатываю функциональность в моем приложении стека MEAN, которое позволит мне получить список всех предприятий в базе данных, которые находятся на определенном расстоянии от выбранного местоположения. Вот мой код:
if (fullAddress) {
queryAdvns = Listing.aggregate().near(
{
near: {type: 'Point', coordinates: [lng, lat]},
distanceField: 'distance',
maxDistance: within,
query: query._conditions,
spherical: true,
distanceMultiplier: 0.00062137,
num: 1000,
limit: 1000
});
queryCount = Listing.aggregate().near(
{
near: {type: 'Point', coordinates: [lng, lat]},
distanceField: 'distance',
maxDistance: within,
query: query._conditions,
spherical: true,
distanceMultiplier: 0.00062137,
num: 1000,
limit: 1000
});
}
if (fullAddress) {
logger.info("Searching by Distance");
queryCount
.limit(1000)
.exec(function (err, list) {
logger.info("Counting Advance Search Result");
if (!err) {
var newLimit = limit + skip;
queryAdvns
.sort(sort)
.limit(newLimit)
.skip(skip)
.exec(function (err, result) {
res.json({
searchResult: result,
count: list.length
});
});
} else {
return next(err);
}
});
}
Когда я запускаю запрос в своем приложении, я получаю следующее сообщение об ошибке: «ошибка: MongoError: требуется опция« курсор », за исключением агрегирования с аргументом объяснения», и мое приложение не выдает никаких результатов при пользовательский интерфейс.
Я использую Mongo версии 4.0.2 в своей локальной среде, где я получаю эту ошибку и поведение. Когда я запускаю точно такой же код на моем сервере разработки, который использует Mongo версии 3.2.13, тот же код выполняется эффективно и успешно публикует результаты запроса в пользовательском интерфейсе. Из того, что я понимаю, мне нужно включить опцию курсора или аргумент объяснения с помощью команды агрегата в запросе, потому что в версии 3.6 (и выше) Mongo запрещено использование команды агрегата без опции курсора или аргумента объяснения.
Я не очень хорошо разбираюсь в команде aggregate и поэтому не могу понять, как изменить этот код, чтобы включить параметр курсора или аргумент объяснения. Ценю некоторую помощь.