2017-10-07 23 views
0

我是一名初級開發人員,負責我的第一個項目。我試圖在我的應用程序中創建一個統計頁面,並且很難弄清楚如何顯示我的數據,因此它很容易閱讀。在類似的應用程序中,我看到使用的表格格式如何在html表中合併重複項?

我附加了當前應用程序統計頁面的圖像,但它爲每個單獨的數據庫記錄生成一行。我希望它能夠重複一個給定的密鑰(LP名稱在這種情況下)下結合,所以我可以很容易地看到,谷歌已經3次點擊,雅虎有1次點擊,等等......

Stats page image

我正在構建我的應用程序節點& express(ejs爲我的模板引擎),爲我的數據庫使用mongodb。我只能在Javascript的前端使用Javascript & Jquery實現這個功能嗎? (我主要不熟悉Jquery)可以通過我的後端堆棧以某種方式實現嗎?

現在,我只是通過我的數據庫&循環顯示存儲數據:

<table class="ui striped table"> 
     <thead> 
     <tr> 
     <th>LP Name</th> 
     <th>URL</th> 
     <th>Clicks</th> 
     <th>Cost</th> 
     <th>Conversions</th> 
     <th>Revenue</th> 
     <th>ROI</th> 
     </tr> 
    </thead> 
    <tbody> 
     <% stats.forEach(function(stat){ %> 
     <tr> 
     <td><%= stat.visited.name %></td> 
     <td><%= stat.visited.URL %></td> 
     <td><%= stat.hit %></td></td> 
     <td><%= stat.cost %></td></td> 
     <td><%= stat.conversion.value %></td> 
     <td><%= stat.conversion.amount %></td> 
     <td>69%</td> 
     </tr> 
     <% }) %> 
    </tbody> 
    </table> 

而且,這裏是我的快遞路線:

app.get("/campaigns/:id",function(req,res){ 
    Stat.find({cid:req.params.id},function(err,foundStats){ 
     if(err){ 
      console.log(err); 
      res.redirect("/"); 
     }else{ 
      res.render("campaigns/show",{stats:foundStats}); 
     } 
    }); 
}); 
+0

請出示一些代碼一些輸入數據 –

+0

歡迎的StackOverflow!爲了讓我們更好地爲您提供幫助,能否請您更新您的問題,以便在** [最小,完整和可驗證的示例]中顯示您的相關代碼(http://stackoverflow.com/help/mcve)** 。如果你能讓我們知道你有什麼** [嘗試到目前爲止](http://meta.stackoverflow.com/questions/261592)**來解決你的問題也是有幫助的。有關詳細信息,請參閱有關** [如何提出良好問題](http://stackoverflow.com/help/how-to-ask)**的幫助文章,然後參加** [網站之旅](http://stackoverflow.com/tour) ** –

回答

0

做到這一點的最好辦法是從後端分組記錄,同時從基於LP名稱的mongodb中獲取記錄,這可以使用mongodb aggregate

更新您的路由ha ndler用下面的代碼:

記住,你需要用正確的數據庫進行更新字段名前:lp_name ...等

app.get("/campaigns/:id", function(req, res) { 
    Stat.aggregate([{ 
      $match: { cid: req.params.id } 
     }, 
     { 
      $group: { 
       _id: { _id: "$lp_name", _url: "$url" }, 
       price: { $sum: "$price" }, 
       clicks: { $sum: "$clicks" }, 
       cost: { $sum: "$cost" }, 
       conversions: { $sum: "$conversions" }, 
       revenue: { $sum: "$revenue" } 
      } 
     }, 
     { 
      $project: { 
       _id: 0, 
       url: "$_id._url", 
       lp_name: "$_id._id", 
       price: 1, 
       clicks: 1, 
       cost: 1, 
       conversions: 1, 
       revenue: 1 
      } 
     } 
    ], (err, foundStats) => { 
     if (err) { 
      console.log(err); 
      res.redirect("/"); 
     } else { 
      res.render("campaigns/show", { stats: foundStats }); 
     } 
    }); 
}); 
+0

我有錯首先,但是當我在Stat Schema中查找正確的名字時,這種工作非常完美。謝謝! –

+0

歡迎您,很高興它幫助...如果這回答您的問號,它被接受... –