2013-10-10 3 views
0

J'ai dans une collection un tableau de référence d'ObjectId. Et je veux retourner les données de l'objet liées à ces identifiants dans la réponse de JSON.NodeJS et MongoDB - Tableau d'ObjectId comment retourner des objets

retrieveFromUser: function(req, res) { 
    var user_id = req.params.user_id; 
    User.findById(user_id, function(err, user) { 
     if(err) { 
      res.send(404, "Unable to find user"); 
     } else { 
      // This returns the array but I want the objects data 
      return res.json(user.constructions); 
     } 
    }); 
} 

Comment puis-je faire cela?
merci beaucoup!

+0

Si vous console.log(user.constructions) quel est le résultat? – Krasimir

+0

C'est le tableau des identifiants: ["52556b4081b9cae812000002", etc ...] – MaT

Répondre

2

Essayez d'utiliser populate() méthode

retrieveFromUser: function(req, res) { 
var user_id = req.params.user_id; 
    User.findOne({ _id: user_id }).populate('constructions').exec(function(err, user) { 
     if(err) { 
      res.send(404, "Unable to find user"); 
     } else { 
      // This returns the array but I want the objects data 
      return res.json(user.constructions); 
     } 
    }); 
} 
+0

Malheureusement, je reçois un TypeError: Impossible d'appeler la méthode 'populate' de undefined ... – MaT

+0

@MaT, utilisez-vous mongoose? Quelle version de mangouste vous utilisez? – krasu

+0

Oui, j'utilise Mongoose 3.6.20. Et si j'utilise findOne, j'ai l'erreur indéfinie. – MaT

Questions connexes