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”參數一起使用。
添加回答
舉報