2

를 사용하는 방법 equipementscategory별로 그룹화, 나의 모델이함수 채우기() 내가 얻을 수있는 기능 <code>.populate()</code>를 사용 제대로

enter image description here

var mongoose = require('../config/db'); 
var EquipementSchema = mongoose.Schema({ 
    libelle: String, 
    marque: String, 
    category: { type: mongoose.Schema.Types.ObjectId, ref: 'Category' } 
}); 

module.exports = mongoose.model('Equipement', EquipementSchema); 

경로 같다 :

router.get('/categorie_id', function(req, res, next){ 
    models.equipement.aggregate([ 
     { 
      $group : { 
       _id : '$categorie_id', 
       equipements: { $push: '$$ROOT' } 
      } 
     } 
    ].exec(function(err , results){ 

     if(err) res.json({error: err}); 
     res.json(results); 
    })); 
}); 

enter image description here

나는 우체부

enter image description here

을 사용하는 경우

results가 null로 나는 cmd를 사용하는 경우 그것은 작동 :

enter image description here

누군가가 도와 드릴까요?

router.get('/categorie_id', function(req, res, next){ 
    models.equipement.aggregate([ 
     { 
      $group : { 
       _id : '$categorie_id', 
       equipements: { $push: '$$ROOT' } 
      } 
     } 
    ].exec(function(err , results){ // <-- typo here: missing a closing bracket after the pipeline array 

     if(err) res.json({error: err}); 
     res.json(results); 
    })); 
}); 

어느 집계 파이프 라인 쿼리를 수정 한 후, 문서 참조를 채울

router.get('/categorie_id', function(req, res, next){ 
    models.equipement.aggregate([ 
     { 
      "$group": { 
       "_id": "$categorie_id", 
       "equipements": { "$push": "$$ROOT" } 
      } 
     } 
    ]).exec(function(err, results){ 
     if(err) res.json({error: err}); 
     res.json(results); 
    }); 
}); 

사용 Model.populate() 기능을해야한다 :

답변

0

당신은 여기에 코드에 오타가 있습니다. results 배열을 사용하여 _id 경로를 다음과 같이 채 웁니다.

관련 문제