我必须加入2个集合并使用ejs渲染它们 以下是2个集合的一部分: 产品:
{
"_id": {
"$oid": "5c60b3ebc5281008df59b8eb"
},
"uid": {
"$oid": "5c062d0c899ab70d5178791e"
},
"title": "Accounting & Finance 5",
"image": "a-600x375.png"
}
uid是产品的所有者
订单:
{
"_id": {
"$oid": "5c6b1d2f34ede10be5e35881"
},
"uid": {
"$oid": "5c5a6d8112d1ca05fa0f40d9"
},
"pid": {
"$oid": "5c60b3ebc5281008df59b8eb"
},
"sid": {
"$oid": "5c062d0c899ab70d5178791e"
},
"transactionId": "PAYID-LRVR2II4YD02808DH382030W",
"title": "Business and Enterprice 5",
"license": "Elite",
"amount": {
"$numberInt": "105"
},
"date": {
"$date": {
"$numberLong": "1550523695877"
}
}
}
uid是买方ID。
sid是卖方id,即产品的uid。
pid是产品ID。
所以在Node.js中,我的工作方式是:
router.get('/order-history', isUser, function (req, res) {
Order.find({uid: req.user._id}, function (err, orders) {
Product.find({_id: orders.pid}, function (err, products) {
res.render('orders', {
title: 'Orders',
products:products,
image:products.image,
orders: orders,
errors: err,
user: res.locals.user
});
});
});
});
此处uid是买方ID。 pid产品ID
所以我需要的是产品集合中的图像名称。我尝试了2 foreach,我能够从两个集合中获取数据,但是我需要一个foreach来显示输出,例如: 图片产品名称日期金额等
这是ejs的快照:
<ul class="orderList">
<% orders.forEach(function(order) { %>
<li>
<div class="orderPanel">
<div class="orderImage">
<a target="_blank" href="img_lights.jpg">
<img id="noimage" src="/product_images/<%= order.sid %>/<%= order.image %>" alt=""
width="180" height="140">
</a>
</div>
<div class="orderDetails">
<div class="orderTitle"><%= order.title %></div>
<div class="orderLicense"><%= order.license %>License <span class="orderDate"
style="float: right; font-size: 10pt">15 Feb 2019</span>
</div>
<table>
<tr style="">
<td style="width: 90%">
<div class="orderAmount">Item Price: $<%= order.amount %></div>
<div>Product By: Hasan</div>
</td>
<td rowspan="2" style="float: right;">You made
<div class="orderProfit"> $45</div>
</td>
</tr>
<tr>
</tr>
</table>
</div>
</div>
</li>
<% }); %>
</ul>
请问我一个大问题。我希望有人能帮助我。