【问题标题】:How to iterate this mongodb json in pug template如何在 pug 模板中迭代这个 mongodb json
【发布时间】:2019-06-13 01:12:02
【问题描述】:

我想按以下格式迭代这个 mongodb json

index         date

 1        1/18/2019, 11:10:05 PM  
 2        1/18/2019, 11:10:19 PM
 3        1/18/2019, 11:13:29 PM 

这是我的 mongodb 代码

{
    "_id" : ObjectId("5c420f651967ea6623f96fb2"),
    "username" : "username",
    "type" : "history",
    "date" : [
        "1/18/2019, 11:10:05 PM",
        "1/18/2019, 11:10:19 PM",
        "1/18/2019, 11:13:29 PM",
        "1/18/2019, 11:14:41 PM",
        "1/18/2019, 11:21:07 PM",
        "1/18/2019, 11:21:26 PM",
        "1/18/2019, 11:22:02 PM",
        "1/18/2019, 11:22:46 PM",
        "1/18/2019, 11:23:35 PM",
        "1/18/2019, 11:24:58 PM",
        "1/18/2019, 11:25:40 PM",
        "1/18/2019, 11:27:29 PM",
        "1/18/2019, 11:32:30 PM"
    ]
}  

这是我的节点 js 代码

db.collection("test").find({username: req.session.login, type: 'history'}).toArray(function (err, docs) { 

res.render("history", {history: docs });

这不工作哈巴狗

table.table.table-hover.table-bordered.table-active
            thead
                tr
                    th Number
                    th(scope="col") Login Time
                each a,i in history.reverse()
                    tr
                        td=i+1
                        td=a.date

请帮助我如何正确地做到这一点 我使用了不起作用的 json stringify 方法

【问题讨论】:

  • 看起来你有一个包含 10 个左右项目的数组数据类型的单个记录(文档)。因此,您只需将其存储在本地变量中并遍历数组。如果您正确显示所有代码,我可以给您更好的文章。为了清楚起见,尝试清理一下(4 个空格表示代码等...)同时在您的视图中显示更多代码。
  • 请解释一下如何用局部变量来做
  • 确保从 MongoDB 获取数据
  • 它将哈巴狗中的数据显示为单行,如 1 1/19/2019、11:56:48 AM、1/19/2019、11:57:01 AM、1/19/2019
  • 那你需要在 pug 上再添加一个循环

标签: node.js json mongodb express pug


【解决方案1】:

您需要在 Pug 上添加另一个循环,它应该如下所示,

table.table.table-hover.table-bordered.table-active
        thead
            tr
                th Number
                th(scope="col") Login Time
            - var sno = 1;
            each a in history.reverse()
                each date in a.date
                    tr
                        td=sno++
                        td=date

【讨论】:

  • 我也可以通过每个 a , i in history[0].date.reverse() td=a
  • 是的,你可以,但你会显示第一个历史元素
  • 是的,但我只想要一个用户数据,所以我可以使用 findOne 方法
  • 好的,是的,你可以使用 findOne
猜你喜欢
  • 1970-01-01
  • 2017-06-18
  • 2015-12-10
  • 1970-01-01
  • 1970-01-01
  • 2017-10-11
  • 2018-02-14
  • 1970-01-01
相关资源
最近更新 更多