2017-08-20 3 views
0

User_id 2 existiert nicht in mongodb aber Konsolenprotokoll nicht gedruckt wird ‚existiert nicht‘Mungo FindOne Daten verlassen nicht funktioniert nicht

var query = PostData.findOne({ 'user_id': '2'}); 

query.exec(function (err, doc) { 
    if(doc) { 
    console.log('ok'); 
    } else { 
    console.log('does not exist'); 
    } 
}); 

Ohne Mungo es funktioniert:

connection.db.collection("PostData", function(err, collection){ 
    collection.find({ 'user_id': '2'}).toArray(function(err, data){ 
     console.log(data); // it will print your collection data 
    }) 
}); 

druckt []

+0

Was ist mit 'err'? Ist es eingestellt? Welche Version von Mungo benutzt du? – Dario

+0

Version 4.11.7 * err = handle Fehler – Nimesha

+0

Können Sie den Fehler protokollieren? 'if (err) { console.log (err); Rückkehr; }; if (doc) { console.log ('ok'); } else { console.log ('existiert nicht'); } ' – Dario

Antwort

0

Egal, ob ein Objekt existiert oder nicht, MongoDB wird trotzdem ein Array zurückgeben. Wenn das Objekt existiert, wird das Array damit gefüllt, ansonsten ist es nur ein leeres Array. Wenn Sie also überprüfen möchten, ob der Benutzer existiert oder nicht, müssen Sie nach doc.length suchen. Wenn es 0 ist, bedeutet dies, dass der Benutzer nicht existiert.

+0

Ich benutze es aber ist nicht arbeiten :( – Nimesha

+0

Können Sie mir sagen, wie Sie den Code änderten? Bitte posten Sie es hier –

+0

Endlich habe ich Zählmethode verwendet, um das Problem zu beheben PostData.findOne ({'user_id': '1', " created_at ": {$ gte: today}}). count – Nimesha

Verwandte Themen