我有一个集合,其中该集合中的所有文档都有一个日期时间戳,其中包括时间和日期。
使用聚合框架时,我怎么说给我今天的价值?以下只给我午夜的条目。
db.strategy.aggregate(
[
{
$match: {
"date": new Date()
}
},
]
);
答案 0 :(得分:1)
要获取具有今天日期时间值的文档,您需要创建一个日期查询范围,其中start
日期对象应保持当前日期时间小时为00:00:00.000
(毫秒精度)并设置今天的小时数为23:59:59.999
到end
日期变量的日期。
例如:
// Create the start date which holds the beginning of today
var todayStart = new Date();
todayStart.setHours(0,0,0,0);
// Create the end date which holds the end of today
var todayEnd = new Date();
todayEnd.setHours(23,59,59,999);
// Create the date range query object
var query = {
"date": {
$gte: todayStart,
$lte: todayEnd
}
};
// using the find() method
db.strategy.find(query);
或使用aggregate()
方法
db.strategy.aggregate({ "$match": query });
答案 1 :(得分:0)
你应该得到I.e范围内的值。从今天的12AM时间戳到今天的23:59:59时间戳。
Var d = new Date(); var startDate = d.setHours(0,0,0); var endDate = d.setHours(23,59,59); db.strategy.aggregate( [ { $ match:{ “date”:{$ gte:startDate,$ lte:endDate} } },
]
);