De acordo com sua pergunta você deseja buscar documentos atuais de uma coleção mongodb . No shell do mongoDB quando você digita
new Date()
ele fornece a data atual com a hora e esse valor sempre varia quando você executa o mesmo new Date()
então provavelmente sua consulta é assim:db.collectionName.find({"start_date":new Date()}).pretty()
Mas, acho que essa consulta retorna os documentos que estarão presentes em sua coleção, mas com a mesma
Date
atual valor pode não estar presente em seus documentos, então neste caso você deve usar o seguinte db.collectionName.find({"start_date":{"$lte":new Date()}}).pretty()
Ou
db.collectionName.find({"start_date":{"$gte":new Date()}}).pretty()
Em alguns casos, se você quiser encontrar uma correspondência exata com
year,month,day
então você deve usar agregação
com $year,$month,$dayOfMonth in $project
assim :db.collectionName.aggregate({
"$project": {
"year": {
"$year": "$date"
},
"month": {
"$month": "$date"
},
"day": {
"$dayOfMonth": "$date"
}
}
}, {
"$match": {
"year": new Date().getFullYear(),
"month": new Date().getMonth() + 1, //because January starts with 0
"day": new Date().getDate()
}
})
Na consulta de agregação acima, retornará os documentos que correspondem à data atual, como
year,month,day
da data atual. Além disso, você substitui $match
Como var currentDate = new Date()
{
"$match": {
"year": currentDate.getFullYear(),
"month": currentDate.getMonth() + 1, //because January starts with 0
"day": currentDate.getDate()
}
}