2014-02-16 54 views
0

你如何使用Node.js的顯示MongoDB的聚集查詢的結果,表達&玉如何顯示聚集的結果,玉

我不知道我做錯了,或即使這是正確的方法。

當我試圖訪問該頁面 - 它只是超時?

有什麼想法?或者,還有更好的方法?

app.js

var mongo = require('mongodb'); 
var monk = require('monk'); 
var db = monk('localhost:27017/soundevents'); 
var timeroute = require('./routes/timers'); 

app.get('/time/starttimer', timeroute.starttimer); 

我的路線/ timers.js看起來是這樣的:從蒙戈

db.event.aggregate([{$group:{_id:{"EventName":"$EventName"}, UpdateTime:{$max: "$UpdateTime"}}}]) 


{"result" : [{"_id" : { 
"EventName" : "MtnBikeRace 1"}, 
"UpdateTime" : 1392265180.069293}, 
{"_id" : { 
"EventName" : "Student League"}, 
"UpdateTime" : 1392047321724}], 
"ok" : 1} 

回答

0

這個例子可以幫助你

exports.starttimer = function(db) { 
return function(req, res) { 
    var aEvent = db.get('event'); 

    aEvent.aggregation([{$group:{_id:{"EventName":"$EventName"}}}],{}, function(e,docs) { 
     res.render('time/starttimer', {title: 'Stat Timer', 
     "eventlist" : docs}); 
    }); 

}; 

}; 

輸出。 https://github.com/visionmedia/express/blob/master/examples/jade/index.js

// Dummy users 
var users = [ 
    new User('tj', '[email protected]') 
    , new User('ciaran', '[email protected]') 
    , new User('aaron', '[email protected]') 
]; 

app.get('/', function(req, res){ 
    res.render('users', { users: users }); 
}) 
// user.jade 
extends ../layout 

block content 
    h1 Users 
    #users 
    for user in users 
     .user 
     h2= user.name 
     .email= user.email 
+0

謝謝,我猜我沒有通過修正寫的正確的mongodb聚合。 – user2106070

0

我降落在這裏,因爲我一直在尋找一種方式來使用和尚彙總結果。

以供將來參考:截至目前,和尚沒有.aggregate()方法,因此您的這部分代碼將無法正常工作(如你在評論表示):

// there's no aggregation method. 
aEvent.aggregation([{$group:{_id:{"EventName":"$EventName"}}}],{}, function(e,docs) { 
       res.render('time/starttimer', {title: 'Stat Timer', 
       "eventlist" : docs}); 
      }); 

然而, this answer節目與僧侶進行聚合的正確方法。它使用底層本機驅動程序。你的情況,這將是類似以下內容:

aEvent.col.aggregate([{$group:{_id:{"EventName":"$EventName"}}}],{}, function(e,docs) { 
     res.render('time/starttimer', {title: 'Stat Timer', 
     "eventlist" : docs}); 
    }); 

如果您彙總這樣,我想你可以接受fundon's answer