mangosta documentos anidados

Tengo 2 esquemas configurados en mangosta:

var Job = new mongoose.Schema({
    title: String,
    budget: Number
});

var JobModel = mongoose.model('Job', Job);

var Customer = new mongoose.Schema({
    name: String,
    jobs: [Job]
});

var CustomerModel = mongoose.model('Customer', Customer);

El modelo de cliente tiene una serie de modelos de trabajo.

Estoy agregando un nuevo trabajo de la siguiente manera:

app.post('/api/jobs', function(req, res){

    var job = new JobModel({
        title: req.body.title,
        budget: req.body.budget
    });

    job.save(function(err){
        if(!err){
            CustomerModel.findById(req.body.customerId, function(err, customer){
                if(!err){
                    customer.jobs.push(job);
                    customer.save(function(err){
                        if(!err){
                            return console.log('saved job to customer');
                        }
                    });
                }
            });
            return console.log('created job');

        } else {
            return console.log(err);
        }
    });

    return res.send(job);
});

Cuando agrego un nuevo trabajo y OBTENGO todos los clientes que obtengo, lo que creo que es correcto:

[{
    "__v": 1,
    "_id": "50f85695771aeeda08000001",
    "name": "Customer1",
    "jobs": [
      {
        "_id": "50fad6985edd968840000002",
        "budget": 100,
        "title": "job1"
      }
    ]
  }, ...]

Ahora, si actualizo job1 y OBTENGO todos los trabajos, el trabajo 1 se ha actualizado (el presupuesto ahora es 500)

[{
    "title": "job1",
    "budget": 500,
    "_id": "50fad6985edd968840000002",
    "__v": 0
  }, ...]

pero el trabajo1 en la matriz de trabajo de clientes permanece sin cambios.

 [{
        "__v": 1,
        "_id": "50f85695771aeeda08000001",
        "name": "Customer1",
        "jobs": [
          {
            "_id": "50fad6985edd968840000002",
            "budget": 100,
            "title": "job1"
          }
        ]
      }, ...]

¿Por lo tanto, necesito buscar la matriz de trabajo del Cliente1 y encontrar el trabajo1 y actualizarlo también cada vez que actualizo o elimino o estoy haciendo todo el proceso de anidación de forma incorrecta?

Entiendo que la matriz de trabajos en el cliente es una matriz de objetos, pero pensé que podrían ser de alguna manera una copia de referencia del trabajo en lugar de un duplicado.

Respuestas a la pregunta(1)

Su respuesta a la pregunta