Mongoose.js: ¿cómo implementar crear o actualizar?

Tengo una solicitud cuyo cuerpo contiene datos y _id

¿Cuál es la mejor manera de implementar el código que se actualizará si el registro con _id existe y creará uno si no hay nadie? Mi código:

var obj = req.body;
Model.findById(obj._id, function(err, data){
    if (!data){
        var model = new Model(obj)
        model.save(function(err, data){
            res.send({method: 'create', error: err, data: data})
        })
    } else {
        Model.findByIdAndUpdate(obj._id, obj, function(){
            res.send({method: 'update', error: err, data: data})
        })
    }

Solo estoy pensando que tal vez hay una mejor manera de hacer esto.

Respuestas a la pregunta(1)

Su respuesta a la pregunta