Как проверить, действительно ли вы получили результат от вашей совокупности

1

Когда мой агрегат ничего не находит и данные [], он все равно решает мою функцию.

Как я могу проверить, действительно ли мой агрегат что-то нашел?

my if (!data) { не работает

usersTable.aggregate (
    {
        $match:{
            _id: UserID
        }
    }
,function (err, data) {
    if (err) {
        throw new Error('findUser: ' + err);
    } else {
        console.log("found: " + JSON.stringify(data, null, 4));
        if (!data) {
            throw new Error('ERR: Unknown userID in call of newBooking');
        }
        resolve("OK");
    };
});

1 ответ

0
Лучший ответ

Решил это так, if (!data) { никогда не будет работать, потому что даже когда mongo возвращает пустой объект, его все еще объект.

Вместо этого я нашел эту функцию

function isEmpty(obj) {
    return Object.keys(obj).length === 0;
}

Так что теперь я могу использовать if (isEmpty(data)) { и он отлично работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню