Arrays innerhalb von Arrays zu haben, ist aus mehreren Gründen fast immer eine schlechte Idee. Ich würde die Kampagnen in eine spezielle Sammlung stellen, damit sie zu Dokumenten auf höchster Ebene werden.
Allerdings können Sie über :
zu einem Nachrichten-Array einer bestimmten Kampagne pushendb.members.update(
{"user_id" : "{1231mjnD-32JIjn-3213}", "campaigns.campaign_id": 3221},
{$push:{"campaigns.$.messages":{"message_id":4213122, "email":"[email protected]"}}}
)