Dans mon Node.js/app express, quand je regarde dans MongoDB, je suis arrivé ce qui suit:Node.js/MongoDB, ne peut pas récupérer les enregistrements
> db.things.find()[0]._id
ObjectId("4da06702584ca3f402000001")
Il n'existe une collection avec id 4da06702584ca3f402000001. Mais quand j'utilise une demande, je ne peux pas la récupérer:
app.get('/thing/show', function(req, res){
res.writeHead(200, {'content-type': 'text/plain'});
Thing = mongoose.model('Thing');
id = "4da06702584ca3f402000001";
Thing.find({ _id : id }, function(thing){
console.log("THING RETRIEVED:" + thing);
res.write(JSON.stringify(thing));
});
res.end();
});
Rien n'est retourné.
Une idée?
* MISE À JOUR *
Cela ne fonctionne pas non plus:
Thing.find({ _id:ObjectId("4da06702584ca3f402000001")}, function(thing){
Il soulève l'erreur suivante:
Error: This is an abstract interface. Its only purpose is to mark fields as ObjectId in the schema creation.
at ObjectId (/usr/local/lib/node/.npm/mongoose/1.1.24/package/lib/mongoose/schema.js:426:9)...
* SOLUTION *
Mon mauvais ....
Le problème n'est pas avec la fonction de recherche mais avec la méthode de rappel que j'utilise ... Je n'ai fourni qu'un seul paramètre (chose) où je devrais fournir (err, tring).
essayez 'mongoose.model ('chose')' – Raynos