あなたの質問によると、mongodbコレクションから当日のドキュメントを取得したい 。 mongoDBシェルでnew Date()
と入力すると 現在の日付と時刻が表示され、同じnew Date()
を実行するとこの値は常に変化します おそらくこのようなクエリ:
db.collectionName.find({"start_date":new Date()}).pretty()
ただし、このクエリは、コレクションに表示されるが現在のDate
と同じドキュメントを返すと思います。 ドキュメントに値が含まれていない可能性があるため、この場合は次のように使用する必要があります
db.collectionName.find({"start_date":{"$lte":new Date()}}).pretty()
または
db.collectionName.find({"start_date":{"$gte":new Date()}}).pretty()
場合によっては、year,month,day
と完全に一致するものを見つけたい場合 次に、集計
を使用する必要があります $ year、$ month、$ dayOfMonth in $ project
このように:
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()
}
})
上記の集計クエリでは、year,month,day
などの現在の日付に一致するドキュメントが返されます。 現在の日付の。また、$match
を置き換えます として
var currentDate = new Date()
{
"$match": {
"year": currentDate.getFullYear(),
"month": currentDate.getMonth() + 1, //because January starts with 0
"day": currentDate.getDate()
}
}