关于nodejs展示mongodb的问题
发布于 9 年前 作者 xiaochun1989 3900 次浏览 最后一次编辑是 8 年前 来自 问答

我在mongodb里面render一个文档出来{lession:docs} { “id” : ObjectId(“559f6f22ea9128c47fa7557d”), “username” : “a123456”, “Monday”: [ { “onebefore” : “11:11”, “oneafter” : “12:12” }, { “twobefore” : “12:14”, “twoafter” : "13:23}] }

我想在页面上读取Monday里面的onebefore值要如何读取阿,<%=lession[0].Monday/[0].onebefore %>这样可以读取,不过太不灵活了,假如我push或者pull一下顺序就会很乱,请问有什么好的办法吗?

先谢谢了

9 回复

是否考虑改下数据结构? 用遍历的方式获取key和value

@doramart 我不懂的是在页面上要怎么拉取具体的键值,不知道您有什么具体一点的方法吗?

<dl id="list" class="panel panel-success">
    <dt class="panel-heading"><%= title %></dt>
    <%
    lession.forEach(function(row){
    %>
    <dd>
        <blockquote>
            <div class="bold">
                <%= row.name %> | <%= Date.valueOf(row.date)() %>
                <span class="del glyphicon glyphicon-remove btn" data-id="<%= row._id %>"></span>
            </div>
            <div><%= row.message %></div>
        </blockquote>
    </dd>
    <% }); %>
</dl>

另外,如果你pull或者push代码格式会乱,你可以尝试关掉git的自动转换行结束符。

顶一楼,

取key 的话就用对象遍历… untitled1.png

另外弱弱的问一句, 能不能考虑客户端渲染?

@creasy2010 你好,刚接触nodejs,之前也没什么前端的经验,我用的是ejs渲染的,我把查询到的username是a123456的文档作为一个变量输出到页面上,然后通过<%=%>进行处理,但是在页面上的操作和在数据库上的操作不一样,我在数据库,可以直接通过Monday.onebefore找到相应的值,但是在页面上操作,他是要先定位到列表上的第一项然后再去键值,就像提问的那样Monday[0].onebefore

@xiaochun1989 你现在的场景简单来说就是:从文档中取onebefore 对吧 ?  我觉得用JS从文档中取出onebefore的值,然后ejs只负责渲染出结果来;

直觉告诉我,你的schema 设计的有问题 建议看看这本书,有中文版 http://item.jd.com/11689232.html http://download.csdn.net/detail/soaring_tiger/7684987

@creasy2010 然而我要提取一个页面要提取100多项类似onebefore这样的值!我已经尝试其他的方法了,谢谢你的意见

@SoaringTiger 我已经换了其他的方式了,拉取数据已经没问题了,反而现在在提交数据出现了新的问题,哈哈哈

回到顶部