O MongoDB remove um item de uma matriz dentro de uma matriz de objetos

Eu tenho um documento que se parece com isso:

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

Eu gostaria de remover o'e3d65a4e-2552-4995-ac5a-3c5180258d87' noregistered matriz desó a seção específica com o_id do'56fea43a571332cc97e06d9e'.

Minha tentativa atual é mais ou menos assim, mas apenas retorna o documento original sem modificações.

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'}
    ]
  }
})

Eu olhei para$pull, mas não consigo descobrir como fazê-lo funcionar em uma matriz de objetos aninhados que contêm outra matriz. o$pull todos os exemplos parecem lidar com apenas um nível de aninhamento. Como faço para remover a entrada correspondente doregistered matriz do item nosections matriz com o_id que eu forneço?

questionAnswers(1)

yourAnswerToTheQuestion