Meteor mongo que actualiza la matriz anidada

Documento de ejemplo:

{
"_id" : "5fTTdZhhLkFXpKvPY",
"name" : "example",
"usersActivities" : [ 
    {
        "userId" : "kHaM8hL3E3As7zkc5",
        "startDate" : ISODate("2015-06-01T00:00:00.000Z"),
        "endDate" : ISODate("2015-06-01T00:00:00.000Z")
    }
]
}

Soy nuevo en mongoDB y leí otras preguntas sobre la actualización de la matriz anidada y no puedo hacerlo correctamente. Lo que quiero hacer es cambiar startDate y endDate para el usuario con un ID de usuario determinado. Mi problema es que siempre empuja un nuevo objeto a la matriz en lugar de cambiar el objeto con un ID de usuario dado.

Activity.update( 
    _id: activityId, usersActivities: {
         $elemMatch: {
             userId: Meteor.userId()
         }
     }},
    {
        $push: {
            'usersActivities.$.startDate': start,
            'usersActivities.$.endDate': end
         }
    }
);

Estaré realmente contento de ayudar.

Respuestas a la pregunta(2)

Su respuesta a la pregunta