【发布时间】:2020-10-20 20:48:37
【问题描述】:
搜索仅在父级检索结果。使用 $or 条件搜索返回子文档级别过滤器/搜索的空数组。 $or 不适用于子文档级别的搜索。对此有任何修复或我的代码中有任何错误吗?
exports.getAllProduct = (req, res, next) => {
categories.find({$or:[{“categoryName”:{ $regex: req.params.id, $options: ‘i’ }},
{“subcategory.$.productName”:{ $regex: req.params.id, $options: ‘i’ }}]},
(err, products) => {
console.log(“Products:“+JSON.stringify(products));
if (err) {
return res.status(400).json({
error: “No Products found”+err
});
}
res.status(200).json(products)
});
};
const categorySchema = new mongoose.Schema({
categoryName: {
type: String,
trim: true
},
subcategory: [ {
subcategoryName: {
type: String,
trim:true
},
productCode: {
type: String,
trim: true
}]});
http://localhost:3000/category/getAllProduct/fruits
$or 不工作的原因是什么?我正在使用 mongoDB 4.4.1 和 mongoose 5.10.8 以及 Mac OS Catalina。
【问题讨论】:
标签: node.js mongodb express mongoose