回到今天的文件我有一個集合,其中該集合中的所有文件都有一個日期戳,其中包括時間和日期。最有效的方法從集合
當使用聚合框架我怎麼說給我的價值觀在當下呢?以下只給我午夜的條目。
db.strategy.aggregate(
[
{
$match: {
"date": new Date()
}
},
]
);
回到今天的文件我有一個集合,其中該集合中的所有文件都有一個日期戳,其中包括時間和日期。最有效的方法從集合
當使用聚合框架我怎麼說給我的價值觀在當下呢?以下只給我午夜的條目。
db.strategy.aggregate(
[
{
$match: {
"date": new Date()
}
},
]
);
爲了得到這對今天的日期時間值的文件,你需要創建在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 });
你應該得到的範圍內,即價值從今天的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( [ {$ 匹配:{ 「日期」:{$ GTE:的startDate,$ LTE:結束日期}} } ,
]
);
感謝您的回答我猜我被我的問題是檢查,我不能日期的方法應用到值的數據庫,然後得到一個簡單的日期1 = date2的比較。 –
不用擔心:)這將是這將不適用於相等比較因爲您正在比較給定範圍內的值。 – chridam
我想這是我的觀點。我想平等檢查thisDate =日期(),而不是thisDateTime today.setHours(0,0,0,0)和today.setHours(23,59,59,999)之間。要做到這一點,前者我需要能夠截斷存儲的日期以消除時間。 –