Secondo i documenti di Mongoose :
Come da precedente risposta SO
Model.findByIdAndUpdate()
"Trova un documento corrispondente, lo aggiorna in base all'aggiornamento arg, passando qualsiasi opzione e restituisce il documento trovato (se presente) alla richiamata."
Nelle opzioni impostate su true:
upsert:bool - crea l'oggetto se non esiste. il valore predefinito è false.
Model.findByIdAndUpdate(id, { $set: { name: 'SOME_VALUE' }}, { upsert: true }, callback)