Sembra che il codice sopra non funzionerebbe. Non avrebbe dovuto funzionare nemmeno per il primo esempio che ho fornito.
Alla fine sono stato supportato da questa risposta qui:MongoDB, rimuovi l'oggetto dall'array
Ecco il mio codice funzionante:
userAccounts.update(
{ userId: usr.userId },
{
$pull: {
connections: { _id : connId }
}
},
{ safe: true },
function removeConnectionsCB(err, obj) {
// ...
}
);