2014-06-22 24 views
0

我有這樣的片段在這裏這在我的MongoDB中保存用戶:如何在MongoDB中保存時間戳記,然後檢索由周的結果

router.post('/adduser', function(req, res) { 
    var db = req.db; 
    var document = req.body; 
    var codeResponse = code(); 
    var timestamp = new Date(); 
    document.code = codeResponse; 
    document.timestamp = timestamp; 
    db.collection('userlist').insert(document, function(err, result){ 
     res.send(
      (err === null) ? { msg: '',code: codeResponse } : { msg: err } 
     ); 
    }); }); 

,你可以看到它也產生在timestamp via the new Date();功能JS。

如何按周檢索用戶?

我嘗試這樣做:

router.get('/winnerlist', function(req, res) { 
    var db = req.db; 
    var start = new Date(2014, 6, 14); 
    var end = new Date(2014, 6, 29); 
    db.collection('userlist').find({"timestamp": {"$gte": start, "$lt": end}}).toArray(function (err, items) { 
     res.json(items); 
    }); 
}); 

回答

2

可以從日期對象獲得的數週後,你可以插入週數作爲一個新的屬性,我找到了這個有用的方法

Date.prototype.getWeek = function() { 
var onejan = new Date(this.getFullYear(),0,1); 
return Math.ceil((((this - onejan)/86400000) + onejan.getDay()+1)/7); 
} 

var today = new Date(); 

var week = today.getWeek(); 

console.log(week); //which will return 26 as today 
+0

我更喜歡這個,謝謝! –

0

我在回答我自己的問題。


我已經保存時做到了這一點:

我只是去格式中的日期,並將它們保存爲純數字,如

月-20-2014變得20140620

router.post('/adduser', function(req, res) { 
    var db = req.db; 
    var document = req.body; 
    var codeResponse = code(); 
    var d = new Date(); 

var month = d.getMonth()+1; 
var day = d.getDate(); 

var timestamp = d.getFullYear() + 
    (month<10 ? '0' : '') + month + 
    (day<10 ? '0' : '') + day; 
    document.code = codeResponse; 
    document.timestamp = timestamp; 
    db.collection('userlist').insert(document, function(err, result){ 
     res.send(
      (err === null) ? { msg: '',code: codeResponse } : { msg: err } 
     ); 
    }); 
}); 

然後我用純老號沒有任何格式,以日期範圍:

router.get('/winnerlist', function(req, res) { 
    var db = req.db; 
    var start = "20140621"; 
    var end = "20140623"; 
    db.collection('userlist').find({"timestamp": {"$gte": start, "$lt": end}}).toArray(function (err, items) { 
     res.json(items); 
    }); 
}); 

我並不標誌着該所接受,也許它不是最好的解決辦法呢。