Jag kan inte säga vad som går fel med ditt exempel, mer än att du gör det på fel sätt. MongoDB tillhandahåller ett enklare, inbyggt sätt att ta bort objekt från en array antingen genom att ange exakt eller via en fråga:
Se $pull
operatör
.
I mongoose skulle ett sätt att göra detta vara:
Article.findByIdAndUpdate(this._id, {
$pull: {
likes: {user: user._id}
}
}, cb);