Ho una raccolta "aziende" con diversi oggetti. Ogni oggetto ha il parametro "_id". Sto cercando di ottenere questo parametro dal db:NodeJS + MongoDB: raccolta dati dalla raccolta con findOne()
app.get('/companies/:id',function(req,res){
db.collection("companies",function(err,collection){
console.log(req.params.id);
collection.findOne({_id: req.params.id},function(err, doc) {
if (doc){
console.log(doc._id);
} else {
console.log('no data for this company');
}
});
});
});
Quindi, chiedo aziende/4fcfd7f246e1464d05000001 (4fcfd7f246e1464d05000001 è _id-Parma di un oggetto che ho bisogno) e findOne restituisce nulla, cioe 'il motivo per cui console.log (' nessun dato per questa azienda '); esegue.
Sono assolutamente sicuro di avere un oggetto con _id = "4fcfd7f246e1464d05000001". Cosa sto facendo di sbagliato? Grazie!
Tuttavia, ho appena notato che id non è un campo di stringa tipico. Questo è quello che mostra mViewer:
"_id": {
"$oid": "4fcfd7f246e1464d05000001"
},
sembra essere un po 'strano ...
Questo è un oggetto. Nella tua query dovresti costruirne uno dalla stringa (sono sorpreso che la libreria non lo faccia per te). –