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

165
Visualizações
Agrupar matriz de objetos por clave y valores de suma del resultado de agregación de mangosta

Tengo un resultado de consulta de una consulta de agregación de mangosta que necesito seguir procesando o, en el mejor de los casos, hacerlo en la agregación misma.

La agregación se ve así

 result = await TokenBalance.aggregate([ { $match: { $and: [ { ethervalue: { $gte: minBalance } }, { ethervalue: { $lte: maxBalance } } ] } }, { $limit:limit } ])

Esto devuelve una matriz de objetos de este formato.

 { "_id": "61013d6dda7d7c0015af5ccf", "balances": [ { "address": "0x1fc3ddeb035310930a444c0fa59c01618d5902af", "symbol": "HBTC", "balance": 5.21419339e-10, "usdvalue": 0.000020969961637162402 }, { "address": "0x1fc3ddeb035310930a444c0fa59c01618d5902af", "symbol": "NSBT", "balance": 1.258566, "usdvalue": 27.427343477595258 }, { "address": "0x1fc3ddeb035310930a444c0fa59c01618d5902af", "symbol": "CRV", "balance": 517.985955847106, "usdvalue": 806.7017064052314 }, { "address": "0x1fc3ddeb035310930a444c0fa59c01618d5902af", "symbol": "USDT", "balance": 0.003469, "usdvalue": 0.003470159747979122 } ], "address": "0x1fc3ddeb035310930a444c0fa59c01618d5902af", "ethervalue": 0.7604598621232733, "createdAt": "2021-07-28T11:20:13.927Z", "updatedAt": "2021-07-28T11:20:13.927Z", "__v": 0 },

Lo que necesito es que la propiedad "saldos" se procese como agrupada por símbolo y para cada uno de estos símbolos sume los campos de saldo y valor usd.

Preferiría que esto se hiciera en la agregación si es posible, pero parece que no puedo hacerlo bien, ni siquiera en nodos puros.

Quiero que el resultado sea así:

 [ { symbol: USDC, balance: xxx, usdvalue: yyy }, { symbol: USDT, balance: zzz, usdvalue: jjj } ]
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede utilizar el siguiente enfoque,

  • $unwind para deconstruir la matriz de balances
  • $group por symbol y sumar balance y usdvalue
  • $addFields para cambiar el nombre del campo _id a symbol y eliminar el campo _id
 result = await TokenBalance.aggregate([ { $match: { $and: [ { ethervalue: { $gte: minBalance } }, { ethervalue: { $lte: maxBalance } } ] } }, { $unwind: "$balances" }, { $group: { _id: "$balances.symbol", balance: { $sum: "$balances.balance" }, usdvalue: { $sum: "$balances.usdvalue" } } }, { $addFields: { symbol: "$_id", _id: "$$REMOVE" } }, { $limit:limit } ])

Patio de juegos

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