В настоящее время у меня есть мои данные GeoJSON хранятся в этом формате:быстрый способ запроса геопространственных данных в MongoDB
coord: [long, lat],
time: unix timestamp,
property: some property
Я хотел бы, чтобы найти ближайшее место с ближайшей временной меткой (ЛТР). Как я это делаю сейчас:
collection.ensureIndex({loc: "2d"})
collection.find(
{coord : {
$near: [xval, yval],
$maxDistance: 200
},
time: {
$lte: time
}
}).sort({time: -1}).limit(1).toArray(function(err, queryResult) {
(did some return 404 and 200 here)
}
Когда размер данных невелик, это работает. Но поскольку моя база данных была увеличена до 50G +, это не сработает (всегда возвращать 404, поскольку ничего не найдено), и я думаю, что это связано с тем, что способ запроса моих данных приводит к низкой производительности. Как мне изменить структуру запроса/данных для улучшения и позволить ей снова работать?
Я не думаю, что с вашим запросом что-то не так. Возможно, вам придется масштабировать свой бэкэнд, если у вас есть 50G + данных .... – Eric
@ Эрик, не могли бы вы немного подробнее узнать о масштабировании моего бэкэнда? – acbh
Либо поставьте больше баранов и CPU или осколок вашей базы данных – Eric