sql >> Database >  >> NoSQL >> MongoDB

mangoest findOne function return undefine

Het gebeurt vanwege de niet-blokkerende, asynchrone aard van node js. Dit betekent dat alle activiteiten die lang duren, zoals bestandstoegang, netwerkcommunicatie en databasebewerkingen, worden aangevraagd en opzij worden gezet totdat de resultaten klaar zijn en worden geretourneerd via een terugbelfunctie.

Dat is waarom je ongedefinieerd raakt, want terwijl de db-bewerking plaatsvindt, wordt de buitenste console uitgevoerd vanwege de niet-blokkerende aard.

Om het resultaat te krijgen, kunt u dit doen

app.get('/home',(req, res)=>{
    establishment.findOne({_id : "57d83a867d3ba20fcb657dc7" } , (err, estab)=>{
        if(err){
            return res.send(err);
        }
        console.log("inside the function: "+estab.name);
        // what ever proccing you need to do with result do here and finally return res
        res.json(estab)
    });
})



  1. Zijn MongoDB-indexen persistent tijdens herstarts?

  2. MongoDB $ en aggregatiepijplijnoperator

  3. Probleem met MongoDB GridFS Bestanden opslaan met Node.JS

  4. SCAN vs KEYS-prestaties in Redis