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

155
Visualizações
Obtener un elemento del subdocumento en mongodb

Me gustaría recuperar un elemento de un subdocumento de matriz en MongoDB.

Este es mi documento actual

 _id: new ObjectId("6175d614c5a8d65745253aca"), fullname: "I'm Admin", password: '$2b$10$MNsk4ODki0bdSpliKthdb.0KGvy4xkBxxeadfg2TnQAZf810SQ.3q', mobile: '88888888', email: 'admin@gmail.com', accountBalance: 979000, __v: 0, tradeTransactions: [ { transactionId: 2021-11-02T00:55:52.268Z, itemName: 'banana', purchasePrice: 1, purchaseAmount: 8000 }, { transactionId: 123, itemName: 'apple', purchasePrice: 2, purchaseAmount: 5000 } ] }

quiero poder conseguir

 { transactionId: 2021-11-02T00:55:52.268Z, itemName: 'banana', purchasePrice: 1, purchaseAmount: 8000 }

Traté de usar pero no me da el resultado que quería.

 const test = user.findOne({"tradeTransactions.transactionId" : "2021-11-02T00:55:52.268Z"}, {"tradeTransactions.$" : 1, "transactionId" : 0})

También lo intenté pero me estaba dando un montón de indefinidos

 user.find({ "tradeTransactions": { $elemMatch: {"transactionId": "123"} } }, {"tradeTransactions.$": 1})

¿Podría por favor obtener alguna orientación?

Muchísimas gracias.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Intente agregar https://mongoplayground.net/p/dDUJO944DIP

 user.collection.aggregate([ { $match: { _id: ObjectId("6175d614c5a8d65745253aca") } }, { $unwind: "$tradeTransactions" }, { $match: { "tradeTransactions.transactionId": "2021-11-02T00:55:52.268Z" } }, { $replaceRoot: { newRoot: "$tradeTransactions" } } ])
about 4 years ago · Juan Pablo Isaza Relatório

0

deberías usar $filter en $project como este

 db.collection.aggregate([ { "$project": { _id: 0, tradeTransactions: { "$filter": { "input": "$tradeTransactions", "as": "t", "cond": { $eq: [ "$$t.transactionId", "2021-11-02T00:55:52.268Z" ] } } } } } ])

https://mongoplayground.net/p/bUACdhesUI8

about 4 years ago · Juan Pablo Isaza 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