Database

[{"walletId":"abcd1234","solBalance":4.5,"liquidityPools":[{"collectionId":"60d1a0a0fd92f81b8e7a1dc1","lpTokens":1000,"feeEarned":5,"isActive":true},{"collectionId":"60d1a0a0fd92f81b8e7a1dc2","lpTokens":2500,"feeEarned":12,"isActive":false}],"createdAt":"2022-09-01T12:34:56.789Z","updatedAt":"2022-09-01T14:34:56.789Z"},{"walletId":"efgh5678","solBalance":7.8,"liquidityPools":[{"collectionId":"60d1a0a0fd92f81b8e7a1dc3","lpTokens":1500,"feeEarned":8,"isActive":true}],"createdAt":"2022-08-20T18:34:56.789Z","updatedAt":"2022-08-20T19:34:56.789Z"}]

Query

db.collection.update({"liquidityPools.collectionId":"60d1a0a0fd92f81b8e7a1dc1","liquidityPools.isActive":true},[{$set:{liquidityPools:{$map:{input:"$liquidityPools",as:"pool",in:{$cond:[{$eq:["$$pool.collectionId","60d1a0a0fd92f81b8e7a1dc1"]},{collectionId:"$$pool.collectionId",lpTokens:"$$pool.lpTokens",feeEarned:{$add:["$$pool.feeEarned",{$multiply:["$$pool.lpTokens",100]},],},isActive:"$$pool.isActive",},"$$pool",],},},},},},])

Result