dev dev
dev dev

Reputation: 123

not able to compare date and get data using node

I need to find only that data, Availability date is greater than my current date. where do I put $gte

function getBookingList(){
    return new Promise(function(resolve,reject){
        Booking.find(
            {userId: req.userId}
        ).populate({
            path:'expId',
            model:Experiences
        }).populate({
            path:'slotId',
            model:Availability
        }).exec(function(err,result){
            if(err){
                reject(err);
            }if(result){
                resolve(result);
            }else{
                resolve({"msg":"Booking Experiences not found."});
            }
        });
    });
}

I find the today date to compare.

 var today = new Date(new Date().setHours(0,0,0,0));;
 var todaynew = today.toISOString();

and I know by using

date: {$gte: todaynew}

above I can get it but where do I put in my query?

Upvotes: 0

Views: 33

Answers (1)

Neel Rathod
Neel Rathod

Reputation: 2111

Your query should be like this:

function getBookingList(){
    return new Promise(function(resolve,reject){
       var today = new Date(new Date().setHours(0,0,0,0));;
       var todaynew = today.toISOString();
        Booking.find(
            {userId: req.userId}
        ).populate({
            path:'expId',
            model:Experiences
        }).populate({
            path:'slotId',
            match: { date: { $gte: new date() || todaynew }}
            model:Availability
        }).exec(function(err,result){
            if(err){
                reject(err);
            }if(result){
                resolve(result);
            }else{
                resolve({"msg":"Booking Experiences not found."});
            }
        });
    });
}

Upvotes: 1

Related Questions