How to do a findOneAndUpdate in an array inside another array with Mongoose

0

I'm a beginner in Mongoose, I would like to make a change ( findOneAndUpdate ) in the second array address in the city field, I tried everything I knew and thank no one that can help.

{
    _id: "573c5ed236c156cc2351d1ea",
    titulo: 'avengers',
    pessoa:
    [
        {
            _id:"573c5ed236c156cc2351d1ee",
            endereco[
                {
                    cidade: "sao paulo",
                    bairro: "bairro1",
                    _id: "573c5ed236c156cc2351d1f0" 
                }
            ]
        },
        {
            endereco[
                {
                    cidade: "rio de janeiro",
                    bairro: "bairro2",
                    id: "573c5ed236c156cc2351d1ef"
                }
            ]
        }
    ]
}
    
asked by anonymous 19.05.2016 / 20:48

1 answer

0

Try this:

SeuModel.findOneAndUpdate(
  {'pessoa.endereco.id': '573c5ed236c156cc2351d1ef'},
  {'$set': {
    'pessoa.$.endereco.$.cidade': 'Nova cidade',
    'pessoa.$.endereco.$.bairro': 'Novo bairro'
  }},
  {new: true}, // <-(opcional) esta opção é para retornar o documento atualizado
  function(err, documentoAtualizado) { ... }
);
    
08.06.2016 / 21:32