我在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一下顺序就会很乱,请问有什么好的办法吗?
先谢谢了
是否考虑改下数据结构? 用遍历的方式获取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 的话就用对象遍历…
另外弱弱的问一句, 能不能考虑客户端渲染?
@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 我已经换了其他的方式了,拉取数据已经没问题了,反而现在在提交数据出现了新的问题,哈哈哈