Запрос MongoDB find () в expressjs возвращает пустой результат при втором запуске - PullRequest
0 голосов
/ 12 марта 2019

У меня возникает следующая проблема:

У меня есть экспресс-сервер, который я использую в качестве бэкэнда / «API» для веб-сайта, который я создаю.

У меня есть маршрут/ в неделю, который поддерживает 2 параметра: время начала и окончания

Когда параметры не указаны, я генерирую метки времени unix текущего дня в 23.59 вечера и дня за 3 недели до 1 часа ночи

с этими2 метки времени и объект базы данных. Я запускаю эту функцию:

weeklyimport: async function (db_payload, start, ende) {
db = db_payload
let callection = await db.collection('History').find({$and: [
    {"datumUnix": {$gt: start}}, {"datumUnix": {$lt: ende}}, {"status": 4}, {"bereich": {$ne: "Akquise"}}, {"bereich": {$ne: "Entwicklung"}}, {"bereich": {$ne: "Gewinnung"}}
    ]}).toArray()
return callection
}

При первой загрузке страницы я вызываю страницу без параметров, чтобы получить данные за период времени 21 день.Console.log для начала и конца первого запроса (без параметров) показывает 1550530800 для начала и 1552382360 для конца.этот запрос возвращает ~ 6800 результатов.После смены таймфрейма на одинаковые начало и конец (только на этот раз вручную, а не автоматически) начальный и конечный интервалы изменяются на 1550530800 и 1552431599 соответственно.Однако на этот раз я получаю пустой массив в качестве результата и счетчик результатов 0.

Когда я запускаю

db.getCollection('History').find({$and: [
        {"datumUnix": {$gt: 1550530800}}, {"datumUnix": {$lt: 1552431599}}, {"status": 4}, {"bereich": {$ne: "Akquise"}}, {"bereich": {$ne: "Entwicklung"}}, {"bereich": {$ne: "Gewinnung"}}
    ]}).count()

в Robo 3T, я получаю 6835 результатов с точно таким же запросом, который возвратилпустой массив раньше.Время ответа на этот запрос составляло ~ 0,248 с, поэтому не должно быть проблемы с тайм-аутом.

Я везде регистрировал начало и конец, чтобы убедиться, что они переданы правильно, и они есть.Моя самая большая проблема (кроме пустого массива) заключается в том, что я не получаю никаких ошибок при запуске этого.Я сделал почти то же самое в другой функции, и она работает без проблем.

Любые советы о том, что может вызвать это, очень приветствуются.Спасибо за ваше время!

1 Ответ

0 голосов
/ 14 марта 2019

Нашел решение - даты, переданные на второй запрос, обрабатывались как строки, а не как целые числа.parseInt () решил проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...