1 回答
TA贡献1802条经验 获得超5个赞
我的错误在于我如何创建订单以及我提出过滤请求的方法。
创建以数组类型存储数据的订单的正确方法如下
exports.createOrder = (req, res) => {
if (!req.body.user) {
res.status(400).send({message: 'Content can not be empty!'});
}
const order = new Order({
materials: {material: req.body.materials, qty: req.body.qty},
userId: req.body.user
});
order
.save(order)
.then(data => {
res.send(data);
})
.catch(err => {
res.status(500).send({
message:
err.message || "Some error occurred while creating the Order."
});
});
}
如您所见,差异是我形成材料阵列的方式。
接下来的事情是在过滤器请求中
exports.filterOrder = (req, res) => {
Order.find({"materials.material": req.body.material})
.then(data => {
console.log(data);
res.send(data);
})
.catch(err => {
res.status(500).send({
message:
err.message || "Some error occurred while retrieving Orders."
});
});
}
如果我需要过滤包含必要材料的订单,我需要将数组的子元素放在带有点表示法的引号中。如果需要,这也将与“material.qty”参数一起使用。
添加回答
举报