J'ai ce schéma Mongoose.MongooseJS utilisant find pour trouver par référence
var mongoose = require ('mongoose')
, dev = require ('../db').dev();
var schema = new mongoose.Schema ({
date: {
type: Date,
default: Date.now
},
company: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Company'
},
questionnaire: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Questionnaire'
}
});
module.exports = dev.model ('Survey', schema);
Je ne souhaite trouver que les sondages ayant un identifiant d'entreprise spécifique. Comment je fais ça? J'ai essayé (avec mon gestionnaire Express):
app.get ('/survey', function (req, res) {
Survey.find ({ company: req.query.company }).populate ('questionnaire').exec (function (err, surveys) {
return res.json (surveys);
});
});
En supposant que 'req.query.company' est une chaîne ObjectId, cela semble correct. Qu'est-ce qui ne fonctionne pas? – JohnnyHK
C'est l'objectId correct. La recherche renvoie un tableau vide lorsque vous essayez d'utiliser la condition de l'entreprise. Mais sans conditions, renvoie la collection entière. Y compris le document avec l'id de l'entreprise que je cherchais en premier lieu. –
Quelque chose ne va pas comme il semble. Est-il possible que la propriété 'company' dans le document que vous recherchez soit en fait une chaîne et non un ObjectId dans la base de données? – JohnnyHK