Fai qualcosa se non trovi nulla con .find () mangusta

Sto memorizzando alcuni dati in un mongodb e accedendo con js / nodejs e mangusta. Posso usare .find () per trovare qualcosa nel database bene, non è un problema. Qual è il problema se non c’è qualcosa, mi piacerebbe fare qualcos’altro. Attualmente questo è quello che sto cercando:

UserModel.find({ nick: act.params }, function (err, users) { if (err) { console.log(err) }; users.forEach(function (user) { if (user.nick === null) { console.log('null'); } else if (user.nick === undefined) { console.log('undefined'); } else if (user.nick === '') { console.log('empty'); } else { console.log(user.nick); } }); }); 

Nessuno di questi fuoco quando faccio qualcosa in cui act.params non sarebbe nell’indice nick. Non capisco niente da consolare quando succede, ma ottengo che user.nick effettui correttamente il login quando è effettivamente lì. Ho appena provato a farlo in senso inverso come questo:

 UserModel.find({ nick: act.params }, function (err, users) { if (err) { console.log('noooope') }; users.forEach(function (user) { if (user.nick !== '') { console.log('null'); } else { console.log('nope'); } }); }); 

ma questo ancora non si registrava. Cosa mi manca qui?

Se non lo trova, salta semplicemente tutto nella chiamata di ricerca, che va bene, tranne che ho bisogno di fare le cose in seguito se non è lì che non voglio fare se lo è. : /

Quando non ci sono corrispondenze find () restituisce [] , mentre findOne () restituisce null . Quindi, usa entrambi:

 Model.find( {...}, function (err, results) { if (err) { ... } if (!results.length) { // do stuff here } } 

o:

 Model.findOne( {...}, function (err, result) { if (err) { ... } if (!result) { // do stuff here } } 
 UserModel.find({ nick: act.params }, function (err, users) { if (err) { console.log(err) }; if (!users.length) { //do stuff here }; else { users.forEach(function (user) { console.log(user.nick); }); } }); 

è quello che ho trovato a lavorare.

Ho dovuto usare:

  if(!users.length) { //etc } 

per farlo funzionare.