我的数据库模式如下:
var Items = new Schema({
no_of_times_ordered:Number,
item_name:String,
item_tag:String,
item_category:String,
item_stock:Number,
item_price:Number,
item_img:String,
item_illustrations:[String],
item_liked:Boolean,
no_of_likes:Number
},{ versionKey: false });
var FoodTruckSchema = new Schema({
foodtruck_name:String,
foodtruck_location:String,
foodtruck_rating:Number,
foodtruck_tag:String,
foodtruck_timing:String,
foodtruck_cusine:String,
foodtruck_img:String,
foodtruck_logo:String,
item_list: [Items]
},{ versionKey: false });
module.exports = mongoose.model('foodtruck',FoodTruckSchema);
查询如下:
var popularitems = function(req,res) {
foodtr.find({ 'item_list.no_of_times_ordered': { $gt: 4000}},function(err,items){
if (err) res.send(err);
res.json({
status : '200',
message:'popular items list',
data: items
});
});
在这里,我想要NO_OF_TIMES_ORDER的项目超过3000次,但是查询似乎不起作用,它为我提供了收藏中的所有项目。
我相信您的查询是错误的。如果您想要 no_of_times_ordered ,则应在查询中指定它。例如:
var popularitems = function(req,res) {
foodtr.find({ 'item_list.no_of_times_ordered': { $gt: 4000}},function(err,items){
if (err) res.send(err);
res.json({
status : '200',
message:'popular items list',
data: items
});
});
希望我的答案有帮助。