J'essaie d'extraire des données d'un MongoDB avec un nœud. Voici mon code:Recherche de données avec la fonction NodeJS # find() à partir d'un MongoDB
var MongoClient = require('mongodb').MongoClient;
var ObjectId = require('mongodb').ObjectId;
var url = 'mongodb://localhost:27017/test';
module.exports.get = function (req, res) {
//console.log(req.params.id)
//prints 1
var query = {};
query['id'] = req.params.id;
MongoClient.connect(url, function (err, db) {
db.collection('events')
.find(query)
.limit(1)
.next(function (err, event) {
if (err) {
res.status(500).send('Could not bring the resource requested!');
}
if (event) {
res.setHeader('Content-Type', 'application/json');
res.send(event);
}
else {
res.status(404).send('Can\'t find the resource you\'re looking for');
}
// db.close();
});
})
}
Dans ma base de données, j'ai un document qui a son propre champ id, différent de _id.
Le problème est avec cette ligne de code: query['id'] = req.params.id;
En utilisant ceci, j'obtiens event = null
. Mais, quand je change ceci à: query['id'] = 1;
, j'obtiens les données que je recherche. Je ne sais pas où est le problème.
@Alex Géré pour résoudre le problème. Je dois utiliser Number (req.params.id) parce que req.params.id est une chaîne. –
Super! Vous pouvez ajouter la réponse vous-même, puis l'accepter! – alexbt