在mongodb集合中,我有一个名为event_startdate的字段,格式如下 event_startdate:2018-10-14 16:00:00.000(type:date)
我要在此字段中存储日期和时间,并希望查询今天发生的事件并使用下面给出的查询
var date = moment()。format('YYYY-MM-D') Event.find({event_startdate:date})。exec()
由于时间也附加到event_startdate,所以我无法获取今天的详细信息。 有办法找到这个吗?
答案 0 :(得分:0)
var date= moment().format('YYYY-MM-D')
将给您一个字符串,然后您尝试将其与mongo中的ISO日期进行比较。
尝试以下方法:
db.getCollection('COLNAME').aggregate([
{
"$match": {
"$expr": {
$eq: [
"2018-10-10", // <--- You string date goes here
{
"$dateToString": {
"date": "$date",
"format": "%Y-%m-%d"
}
}
]
}
}
}
])
这是将$expr
管道运算符与dateToString
一起使用。
答案 1 :(得分:0)
您也可以使用find
。
db.getCollection('loginDetail').find({
"$expr": {
$eq:
[ "2018-09-21", { "$dateToString": { "date": "$eventDate", "format": "%Y-%m-%d"
}
}
]
}
})