2017-03-11 1 views
0

과 모음의 내부 문서를 참조하는 한 방법 내 스키마가 될 때 :는 다음 조건

foodtruck.js이

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 
var Items = require('./items.js'); 


var FoodTruckSchema = new Schema({ 
    foodtruck_name:String, 
    foodtruck_location:String, 
    foodtruck_rating:{type:Number,default:5}, 
    foodtruck_total_votes:{type:Number,default:0}, 
    foodtruck_tag:String, 
    foodtruck_timing:String, 
    foodtruck_cusine:String, 
    foodtruck_img:String, 
    foodtruck_logo:String, 
    item_list: [ {type : mongoose.Schema.ObjectId, ref : 'items'}] 
},{ versionKey: false }); 



module.exports = mongoose.model('foodtruck',FoodTruckSchema); 

items.js

이제
var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

var ItemSchema = new Schema({ 
    no_of_times_ordered:Number, 
    item_name:String, 
    item_tag:String, 
    item_category:String, 
    item_illustrations:[String], 
    item_stock:Number, //0 available 1 last 5 items 2 not available 
    item_quantity_ordered:{type:Number,default:0}, 
    item_price:Number, 
    item_img:String, 
    no_of_likes:{type:Number,default:0} 
},{ versionKey: false }); 

module.exports = mongoose.model('items',ItemSchema); 

, 나는 foodtruck을 할 그런 아이템리스트를 가지고 있는데 그 안에있는 모든 아이템은 no_of_times_ordered4000보다 커야합니다. 그걸 위해서 저는 quesry를 아래와 같이 넣습니다 :

foodtr.find({ 
     'item_list.no_of_times_ordered': { 
      $gt: 4000 
     } 
    }, function(err, items) { 
     if (err) res.json({ 
      status: '404', 
      message: 'there is no data available' 
     }); 
     res.json({ 
      status: '200', 
      message: 'popular items list', 
      data: items 
     }); 
    }); 
}; 

하지만 여기서는 비어있는 목록이 표시됩니다. 그렇다면 위의 요구 사항에 따라 itemlist를 어떻게 가질 수 있습니까?

답변

0

잘못된 질문을하면 참조 된 문서에 item_list.no_of_times_ordered을 사용할 수 없습니다. populate을 사용해야하고 선택 품목 만 ~ query의 조건을 populate 안에 사용하십시오.

이 시도 :

foodtr.find({}).populate({ 
    path : 'item_list', 
    match : {no_of_times_ordered : { $gt :4000}} 
}).exec(function(err, items) { 
    ... 
}); 
+0

감사합니다, 그것은 일 –