¿Cómo puedo usar un campo de agregado en una regex $ match en mongodb?

Una versión muy simplificada de mi caso de uso es encontrar todas las publicaciones que comiencen con el nombre del autor, algo como esto:

> db.users.find();
{ "_id" : ObjectId("5c4185be19da7e815cb18f59"), "name" : "User1" }
{ "_id" : ObjectId("5c4185be19da7e815cb18f5a"), "name" : "User2" }

db.posts.insert([
  {author : ObjectId("5c4185be19da7e815cb18f59"), text: "User1 is my name"},
  {author : ObjectId("5c4185be19da7e815cb18f5a"), text: "My name is User2, but this post doesn't start with it"}
]);

Así que quiero identificar todas las publicaciones que comienzan con el nombre del autor. Estoy intentando con un agregado como este, pero no sé cómo extraer el nombre del usuario de la canalización de agregados para usar en una coincidencia de expresiones regulares:

db.users.aggregate([
  {
    $lookup: {
      from: "posts",
      localField: "_id",
      foreignField: "author",
      as: "post"
    }
  },
  {
    $match: { "post.text": { $regex: "^" + name}}
  }
]).pretty();

La cosa "nombre" aquí no es algo definido, necesito extraer el nombre de la entrada de la colección de usuarios del paso anterior de la tubería. Por alguna razón, no entiendo cómo hacer eso.

Esto probablemente sea muy simple y definitivamente me siento gruesa como un ladrillo aquí ... ¡Cualquier ayuda es muy apreciada!

Respuestas a la pregunta(1)

Su respuesta a la pregunta