Podle vaší otázky chcete načíst dokumenty aktuálního dne ze sbírky mongodb . V prostředí mongoDB, když napíšete new Date()
dává vám aktuální datum s časem a tato hodnota se vždy mění, když spustíte stejné new Date()
takže váš dotaz pravděpodobně vypadá takto:
db.collectionName.find({"start_date":new Date()}).pretty()
Ale myslím si, že tento dotaz vrátí ty dokumenty, které budou ve vaší sbírce, ale stejné aktuální Date
hodnota nemusí být ve vašich dokumentech uvedena, takže v tomto případě byste měli použít následující
db.collectionName.find({"start_date":{"$lte":new Date()}}).pretty()
Nebo
db.collectionName.find({"start_date":{"$gte":new Date()}}).pretty()
V některých případech Pokud chcete najít přesnou shodu s year,month,day
pak byste měli použít agregace
s $year,$month,$dayOfMonth v $project
takhle :
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()
}
})
Ve výše uvedeném agregačním dotazu se vrátí ty dokumenty, které odpovídají aktuálnímu datu jako year,month,day
aktuálního data. Také nahradíte $match
jako
var currentDate = new Date()
{
"$match": {
"year": currentDate.getFullYear(),
"month": currentDate.getMonth() + 1, //because January starts with 0
"day": currentDate.getDate()
}
}