MongoDB elimina un elemento de una matriz dentro de una matriz de objetos

Tengo un documento que se ve así:

{
  "_id" : ObjectId("56fea43a571332cc97e06d9c"),
  "sections" : [
    {
      "_id" : ObjectId("56fea43a571332cc97e06d9e"),
      "registered" : [
        "123",
        "e3d65a4e-2552-4995-ac5a-3c5180258d87"
      ]
    }
  ]
}

Me gustaría eliminar el'e3d65a4e-2552-4995-ac5a-3c5180258d87' en elregistered gama desolamente la sección específica con el_id de'56fea43a571332cc97e06d9e'.

Mi intento actual es algo como esto, pero solo devuelve el documento original sin modificar.

db.test.findOneAndUpdate(
{
  $and: [
    {'sections._id': ObjectId('56fea43a571332cc97e06d9e')},
    {'sections.registered': 'e3d65a4e-2552-4995-ac5a-3c5180258d87'}
  ]
},
{
  $pull: {
    $and: [
      {'sections._id': ObjectId('56fea43a571332cc97e06d9e')},
      {'sections.registered': 'e3d65a4e-2552-4995-ac5a-3c5180258d87'}
    ]
  }
})

He buscado en$pull, pero parece que no puedo entender cómo hacer que funcione en una matriz de objetos anidados que contienen otra matriz. los$pull Todos los ejemplos parecen tratar solo con un nivel de anidamiento. ¿Cómo elimino la entrada coincidente delregistered matriz del artículo en elsections matriz con el_id que yo suministro?

Respuestas a la pregunta(1)

Su respuesta a la pregunta