【问题标题】:List items in MongoDB array列出 MongoDB 数组中的项目
【发布时间】:2013-12-31 22:29:22
【问题描述】:

我正在尝试列出我作为数组存储在文档字段“正文”中的一系列段落。如果我在数组中有 x 项,它会输出整个字段 x 次。如果有人能指出我正确的方向,我将不胜感激。我知道问题出在我最后有 #{pages.body} 的地方,因为显然这会返回整个字段,但我不确定如何更改它。

路线:

exports.cont = function(db) {
    return function(req, res) {
        var collection = db.get('contents');
            collection.find({href:req.params.href},{},function(e,docs){
                res.render('cont', {
                    "cont" : docs
                });
            });
        };
};

在 Jade 中显示页面:

each pages, i in cont
    .box
        h1 #{pages.title}
            .img
                img.body(src="#{pages.img}")
            .text
                each para, i in pages.body
                    p #{pages.body}

【问题讨论】:

  • 修复了!!我将“body”下的数组变成了一系列子文档,其中包含 { text: "paragraph text..." } 并在 .text div 中更改为:每个段落,i in pages.body p #{paragraph.text} Hope在某些时候可以帮助某人!
  • 既然您为自己的问题制定了解决方案,您还可以在下面发布一个清理后的版本作为答案(即包括更正模板的示例)。

标签: javascript arrays mongodb


【解决方案1】:

解决方案:

each pages, i in cont
    .box
        h1 #{pages.title}
            .img
                img.body(src="#{pages.img}")
            .text
                each paragraph, i in pages.body
                    p #{paragraph.text}

MongoDB 文档设置:

{ 
    img: "xxxxxx",
    body:
        [
            { text: "xxxxxxx" },
            { text: "xxxxxxx" },
            { text: "xxxxxxx" }
        ]
}

如果您想在每个段落中选择 HTML 格式,只需将 {paragraph.text} 之前的 # 替换为 !

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-18
    • 2020-01-10
    • 1970-01-01
    • 2014-02-18
    • 2021-10-10
    • 2021-12-06
    • 2020-09-08
    相关资源
    最近更新 更多