Пн goose поиск между датами, порядок по ID - PullRequest
0 голосов
/ 22 января 2020

Итак, я пытаюсь найти все документы в базе данных между датами «X» и «X», а затем упорядочить их по идентификатору пользователя. Это то, что я до сих пор:

await Expense.find(
            {'date' :{'$gte': new Date(startDate), '$lte': new Date(endDate)}}),{sort: {_id: 1}}.exec(function(err, data){
                    if(err){
                        console.log('Error Fetching Model');
                        console.log(err);
                    }
                    console.log(JSON.stringify(data, null));
                    expenseArray = data;
                    console.log(expenseArray);

Но он продолжает давать мне "TypeError: {(промежуточное значение)}. Exe c не является функцией"

Для дополнительного пояснения Я пытаюсь написать это в пн goose:

"SELECT employeeName, SUM(amount)
            FROM reimbursements
            WHERE d8 BETWEEN '$startDate' AND '$endDate'
            GROUP BY employeeName
            ORDER BY employeeName;";

Что я делаю не так? Заранее спасибо: D

1 Ответ

1 голос
/ 22 января 2020

Ваш запрос имеет несколько синтаксических проблем, пожалуйста, попробуйте это:

Обновление:

Ниже старый код будет работать, но было бы лучше, если вы попробуете этот способ :

try {
    let data = await Expense.find(
        { 'date': { '$gte': new Date(startDate), '$lte': new Date(endDate) } }).sort({ _id: 1 })

    /** .find() will not return null, it will either return [] or [with matched docs] */

    if (data.length) { // checks data != [] 
        console.log(data)
    } else { // data == []
        console.log('Empty - no docs found')
    }
} catch (error) {
    console.log('Error Fetching Model');
    console.log(error);
}

Старый:

await Expense.find(
    { 'date': { '$gte': new Date(startDate), '$lte': new Date(endDate) } }).sort({ _id: 1 }).exec(function (err, data) { 
     /** sort is not an option for .find() not like aggregate, it has to be on cursor which is result of .find() & .exec() should be at end which is either .find() or .sort() */
        if (err) {
            console.log('Error Fetching Model');
            console.log(err);
        }
        console.log(JSON.stringify(data, null));
        expenseArray = data;
        console.log(expenseArray)
    })

Образец: mongooseModel.find().sort().exec()

Ссылка: cursor.sort

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