Het hebben van arrays in arrays is om een aantal redenen bijna altijd een slecht idee. Ik zou de campagnes in een speciale verzameling plaatsen, zodat ze documenten op het hoogste niveau worden.
Dat gezegd hebbende, kunt u naar een berichtenreeks van een specifieke campagne pushen via:
db.members.update(
{"user_id" : "{1231mjnD-32JIjn-3213}", "campaigns.campaign_id": 3221},
{$push:{"campaigns.$.messages":{"message_id":4213122, "email":"[email protected]"}}}
)