您好 SO 用户,
我遇到了一些高级 Mongoose 查询,我根本无法从文档中弄清楚。
首先,我想按一些数学排序。基本上我希望能够按两个对象的价格差异进行排序。我有“价格”和“旧价格”,其中包含基本数值。然后我想减去它们并按最高折扣排序。所以在 SQL 中我会是这样的
ORDER BY (oldprice - price)
我遇到的另一个问题是通过字符串数组过滤字符串数组。
所以基本上我有一个“裤子”模型,有一个 [size] 对象(字符串数组),它包含多种尺寸。现在我希望能够通过多个用户选择的尺码来搜索数据库,并找到所有包含一个所选尺码的裤子。
我试过做:
Pants.find({
name: new RegExp(search, 'ig'),
sizes: {
$in: [selectedSizes]
}
}).skip(skip).limit(limit).sort(sort).execFind(function(err, pants) {
return res.send(pants);
});
如果一个值在“selectedSizes”中,则可以正常工作,但由于多个值而失败。
希望有人有一些想法;-)
裤子型号:
var PantsSchema;
PantsSchema = new mongoose.Schema({
supplier: {
type: String
},
manufacturer: {
type: String
},
web: {
type: String
},
name: {
type: String
},
link: {
type: String,
required: true,
unique: true
},
image: {
type: String
},
sizes: {
type: [String]
},
price: {
type: Number
},
oldprice: {
type: Number
},
added: {
type: Date,
"default": Date.now
},
updated: {
type: Date
}
});