【问题标题】:Selecting individual documents/objects from MongoDB collection that's in a loop?从循环中的 MongoDB 集合中选择单个文档/对象?
【发布时间】:2020-09-21 10:37:21
【问题描述】:

我不确定如何准确地表达这个...但基本上在我的代码中,我使用forEach 循环遍历我的 MongoDB 集合,并在表格中使用 ejs 显示其中的对象。我想这样当用户点击其中一个对象时,它会将他们带到一个页面,其中包含他们选择的项目的详细信息,但不能这样做,因为它们是通过循环显示的。

例如: 我的集合名为stores,包含environmentstoreversion 等对象。当我用循环显示它们时,我就是这样做的:

     <table>
            <tr>
                <th>Environment</th>
                <th>Store Name</th>
                <th>Code Version</th>
            </tr>
        <% stores.forEach(function(store){ %>
            <tr>
                <td> <%= store.environment %> </td>
                <td> <%= store.store %> </td>
                <td> <%= store.version %> </td>
            </tr>
        <% }); %>
    </table>

结果表如下所示:

Environment | Store Name   | Code Version
-----------------------------------------
QA1         | Oakdale      | 2019.09
QA2         | Westminster  | 2020.03 
QA3         | Garden Grove | 2020.05

我希望用户能够点击,例如,QA1,它会将他们引导到另一个页面以获取有关 QA1 的详细信息。我的问题是,代码通过&lt;%= store.environment %&gt; 显示为一个组,如何在 JUST QA1 或仅 QA2 上创建链接?现在,如果我将链接放在与&lt;%= store.environment %&gt; 相同的td 中,则该链接会出现在environment 的每个实例中。

有没有办法通过 jQuery 或其他方式来选择特定的环境?

【问题讨论】:

    标签: html node.js mongodb object ejs


    【解决方案1】:

    是的,你可以,你只需要检查environment 属性,或者你用来定义是否应该显示链接的任何属性。

    这里有一个简单的例子来说明如何做到这一点:

    <table>
            <tr>
                <th>Environment</th>
                <th>Store Name</th>
                <th>Code Version</th>
            </tr>
        <% stores.forEach(function(store){ %>
            <tr>
                <td> 
                    <% if (store.environment === "QA1") { %>
                       <a href="/your-url"><%= store.environment %></a>
                    <% } else { %>
                       <%= store.environment %> 
                   <% } %>
                </td>
                <td> <%= store.store %> </td>
                <td> <%= store.version %> </td>
            </tr>
        <% }); %>
    </table>
    

    抱歉有任何代码错误,我是直接从 StackOverflow 做的。

    【讨论】:

    • 哦,哇...我尝试了类似的方法,但没有成功,所以我认为它会更复杂,但这有效!谢谢!
    • 很高兴为您提供帮助:)
    猜你喜欢
    • 1970-01-01
    • 2014-10-24
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 2022-01-19
    • 1970-01-01
    • 2016-02-14
    相关资源
    最近更新 更多