在Meteor中,我以这种方式创建了一个获胜者文档:
var winner = {
participant_id: array[randomIndex]["_id"], //don't worry about the array[randomIndex]
creation_date: new Date()
};
id = Winners.insert(winner);
后来,我想知道我今天有多少获奖者。我尝试了很多方法,但是我无法获得正确的结果。
我尝试的最后一件事就是这个:
Winners.find({creation_date: {"$gte": moment().startOf('day'), "$lt": moment().add('days',1)}}).count();
但结果总是等于零。
我想原因是那一刻()。startOf(' day')不是日期对象,但我不知道如何以正确的方式查询它。
答案 0 :(得分:13)
您需要将时刻对象转换回Date
,以便meteor / mongo可以处理查询。您可以通过附加呼叫toDate来实现这一点:
var startDate = moment().startOf('day').toDate();
var endDate = moment().add('days',1).toDate();
Winners.find({creation_date: {$gte: startDate, $lt: endDate}}).count();
答案 1 :(得分:1)
试试这个:
// the number of milliseconds since 1970/01/01:
creation_date:new Date().getTime()
和
// you can still use moment:
moment().startOf('day').valueOf()
// query:
Winners.find({
creation_date: {
"$gte": moment().startOf('day').valueOf(),
"$lt": moment().add('days',1).valueOf()
}
}).count();