#javascript #node.js #mongodb
#javascript #node.js #mongodb
Вопрос:
Я использовал Mongoose для запроса MongoDB во время веб-запроса что-то вроде:
Kittens.find()
.where('born')
.gt(startDate)
.lt(endDate)
.exec(function (err, kittens) {
if (err) {
// bad kitty
}
// fun with kittens
res.jsonp(kittenData);
});
К сожалению, если у меня слишком много котят, это происходит
Итак, мне нужно сделать это, чтобы уменьшить объем данных, которые я извлекаю:
get real start date and real end date
make temp start date and temp end date
get one days worth of kittens
increment the temp dates by one
until temp end date is past real end date
Проблема в том, что я пытался объявить:
var allKittens = [];
А затем в цикле, где я запрашиваю количество дней котят:
allKittens.concat(todaysKittens);
но allKittens
, как правило, по-прежнему остается пустым массивом.
Я не ниндзя Javascript, поэтому я не знаю, как я запускаю этот асинхронный запрос котенка много раз и объединяю всех котят, которые мне нужны, в один массив, который я могу использовать при отправке своего ответа.
Пожалуйста, помогите мне
Комментарии:
1. Используйте
push
вместоconcat
.2. Если вы хотите использовать
concat
then, вам нужно назначить возврат существующему массиву (чтобы сохранить то, что было добавлено в массив). Что-то вродеallKittens = allKittens.concat(todaysKittens);