【发布时间】:2022-01-11 13:58:50
【问题描述】:
我正在尝试创建一个过滤器来管理订单(卖家)
订单由“价格”、“国家/地区”、“产品类型”组成, 以及卖家和客户信息
order: {
_id:""
price: $750
country:"Italy"
customer: objectID
Seller: objectID
productType: "smartphone"
}
customer: {
_id:""
location:"Italy",
paymentType:"paypal"
languages:"it"
}
Seller: {
_id:"278"
location:"UK"
languages:"en"
}
假设卖家(_id:278)想要找到他的所有订单:
order with a minimum price of $500 and a maximum price of $800
and order in the country "italy" or "belgium"
and order with customers who have paid with "paypal" or "stripe"
and order with customer who speaks English or Italian
所以我提出了这个要求:
Order.find({ $and:[
seller: 278,
price: {$gte: 500, $lte: 800},
country: { $or:["Italy","belgium"] },
customer: { paymentType: { $or:["paypal","stripe"] },
languages:{ $or:["en","it"] }
]})
当然我有一个错误:
" Cast to ObjectId failed for value " paymentType: { $or:["paypal","stripe"]
at path "customer " for model Order"
我不知道该放什么,因为我没有针对任何特定客户我不需要针对我不了解的客户 ID
【问题讨论】:
标签: node.js mongodb mongoose mongodb-query