我对mongodb和mongoose很陌生,所以我请你帮助我。我有一个API,它可以工作,现在我想通过过滤给定的参数来扩展它。
我有一个订单模型,它指向两个不同的文档集合材料和用户模式,并具有数量元素。
let Order = new Schema({
materials:
{
type: Array,
material: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Material'
},
qty: {
type: Number
}
},
userId: {
type: Schema.Types.ObjectId,
ref: 'User'
}
}, {
collection: 'orders'
})
另外,我有创建订单的方法:
exports.createOrder = (req, res) => {
if (!req.body.user) {
res.status(400).send({message: 'Content can not be empty!'});
}
const order = new Order({
materials: req.body.materials,
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."
});
});
}
如果我只创建订单填充物料 ID,它会在过滤器请求中按给定的物料 ID 创建和过滤。
发布请求
过滤器请求
但是,如果我试图指出数量,它不会出现在响应中。
以数量发布请求
以上一个文档 ID 结尾的筛选器请求
有我的问题是:如何以我需要的方式创建订单(物料ID和数量必须保留)以及如何对它们执行过滤操作?
慕后森
相关分类