【发布时间】:2017-11-20 12:27:08
【问题描述】:
这就是我的数据的样子
{ _id: 5a114dede58f4a05cb135d96,
messages: [
{
id: 5a114c66e58f4a05cb135d8c,
User: 'developer2',
_id: 5a114e26e58f4a05cb135d9b,
texts: [{
_id: 5a114e26e58f4a05cb135d9d,
message: 'hii',
username: 'ruby'
},
{
_id: 5a114e40e58f4a05cb135d9e,
message: 'es',
username: 'shan'
}
] } ]
}
}
如何从文本中提取所有数据, 我用过这个,但这没有返回任何东西
<% texts.messages.texts.forEach(function(text){ %>
<p><%=text.message%></p>
<p><%=text.username%></p>
<% }) %>
**编辑:当我刚刚打印时
**{ _id: 5a114dede58f4a05cb135d96,
messages: [ { id:
5a114c66e58f4a05cb135d8c,
User: 'developer2', _id:
5a114e26e58f4a05cb135d9b,
texts: [Array] } ]
}
除非我打印出来,否则我无法看到文本中的数据
*这是我写完 texts.messages 后得到的 *
{
texts: [{
_id: 5a114e26e58f4a05cb135d9d,
message: 'hii',
username: 'ruby'
},
{
_id: 5a114e40e58f4a05cb135d9e,
message: 'es',
username: 'shan'
}
] } ]
}
}
我将数据传输到 ejs 的路径
User.findOne({username:req.user.username},{messages:
{ $elemMatch: {
User:req.params.username} }},
function(err,data){
if (err) {
throw err;
} else {
res.render("chat",{texts:data,user:founduser});
}
})
我在这里错过了什么?
【问题讨论】:
-
mongod 查询是否首先找到任何数据?
-
是的,我检查过它正在返回整个数据
-
''打印完整的数据,其中包含用户名,只有文本内的数据没有打印出来
-
我已经详细编辑过了,现在也许你可以知道问题出在哪里了
-
Messages 是一个数组,您将其用作对象。如果您确定它是单个条目数组,则使用 texts.messages[0].texts.forEach。但是如果消息有不止一个条目,那么您还必须遍历消息。
标签: json node.js mongodb mongoose