2014-06-11 31 views
3

在流星的日期,我創建了一個勝利者的文件是這樣的:Meteorjs MongoDB中如何查詢與momentjs

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')不是日期對象,但我不知道如何以正確的方式查詢它。

回答

12

你需要的那一刻對象轉換回Date所以流星/蒙戈就可以處理查詢。你可以通過追加toDate這樣的電話:

var startDate = moment().startOf('day').toDate(); 
var endDate = moment().add('days',1).toDate(); 
Winners.find({creation_date: {$gte: startDate, $lt: endDate}}).count(); 
+0

非常好,謝謝! – ndemoreau

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();