Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

186
Visualizações
Actualice el último elemento de una matriz anidada en mongodb

He intentado la siguiente consulta de mongoose que no parece funcionar:

 Model.findOneAndUpdate( { name: origin }, { $set: { 'field1.$[id1].field2.-1': "value" } }, { arrayFilters: [ { 'id1.userId': "customerId" } ], new: true } );

Nota: field1 y field2 son matrices

MongoDB no acepta los índices negativos, lo que está causando problemas.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Puede considerar usar el operador $set (agregación) y usar el operador double $map :

 db.collection.aggregate([ { $match: { name: "myname" } } { $set: { field1: { $map: { input: "$field1", in: { $cond: { if: { $ne: [ "$$this.userId", "customerId" ] }, then: "$$this", else: { $mergeObjects: [ "$$this", { field2: { $concatArrays: [ { $slice: [ "$$this.field2", { $add: [ { $size: "$$this.field2" }, -1 ] } ] }, ["value"] ] } } ] } } } } } } } ])

Parque infantil Mongo

over 4 years ago · Santiago Trujillo Relatório

0

Aplique el operador $set junto con el operador posicional $ en su actualización para cambiar el campo de nombre.

El operador posicional $ identificará el elemento correcto en la matriz para actualizar sin especificar explícitamente la posición del elemento en la matriz, por lo que su declaración de actualización final debería verse así:

 db.collection.update( { "friends.u.username": "michael" }, { "$set": { "friends.$.u.name": "hello" } } )

Respuesta tomada de - https://stackoverflow.com/a/34431571

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda