MongoDB: ¿Cómo obtener una lista distinta de valores de campo de sub-documento?

Digamos que tengo los siguientes documentos en colección:

{
   "family": "Smith",
   "children": [
        {
            "child_name": "John"
        },
        {
            "child_name": "Anna"
        },
    ]
}

{
   "family": "Williams",
   "children": [
        {
            "child_name": "Anna"
        },
        {
            "child_name": "Kevin"
        },
    ]
}

Ahora quiero obtener de alguna manera la siguiente lista de nombres únicos de niños que cruzan todas las familias:

[ "John", "Anna", "Kevin" ]

La estructura del resultado puede ser diferente. ¿Cómo lograr eso en MongoDB? Debería ser algo simple pero no puedo entenderlo. Intenté la función aggregate () en la colección, pero no sé cómo aplicar la función distinct ().

Respuestas a la pregunta(2)

Su respuesta a la pregunta