Quando il findOne query non trova almeno un documento corrispondente, il secondo parametro della richiamata (in questo caso user ) è impostato su null . Non è un errore, quindi err è anche null . Quindi quello che vedi è la risposta prevista di mancata corrispondenza.
Aggiorna
Tieni presente che findOne
è stato deprecato nel driver 2.0, ma anche la sua sostituzione mostra lo stesso comportamento:
users.find({'fb_id' : fbUserMetadata.id}).limit(1).next(err, doc) {
// doc is null if a matching document wasn't found
});