In base alla tua domanda vuoi recuperare i documenti del giorno corrente da una raccolta mongodb . Nella shell mongoDB quando digiti new Date()
ti dà la data corrente con l'ora e questo valore varia sempre quando esegui lo stesso new Date()
quindi probabilmente la tua domanda come questa:
db.collectionName.find({"start_date":new Date()}).pretty()
Ma penso che questa query restituisca quei documenti che presenteranno nella tua raccolta ma la stessa Date
corrente il valore potrebbe non essere presente nei tuoi documenti, quindi in questo caso dovresti usare il seguente
db.collectionName.find({"start_date":{"$lte":new Date()}}).pretty()
Oppure
db.collectionName.find({"start_date":{"$gte":new Date()}}).pretty()
In alcuni casi Se vuoi trovare una corrispondenza esatta con year,month,day
quindi dovresti usare aggregazione
con $year,$month,$dayOfMonth in $project
così :
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()
}
})
Nella precedente query di aggregazione verranno restituiti quei documenti che corrispondono alla data corrente come year,month,day
di data corrente. Sostituisci anche $match
come
var currentDate = new Date()
{
"$match": {
"year": currentDate.getFullYear(),
"month": currentDate.getMonth() + 1, //because January starts with 0
"day": currentDate.getDate()
}
}