Quiero empujar el elemento dentro de la matriz que está dentro del elemento anidado.
Se han hecho preguntas similares. Probé las soluciones pero no funcionó para mí.
mensaje de error es
MongoServerError: Cannot create field 'approved' in element {transactionList: [ { id: 0, greeterAddress: "0x0", executed: 0, value: "namaste", approved: [ "0xDcb980b3d6Bd61a86A8d7Cb9bbd937452f7E745D", "0xDcb980b3d6Bd61a86A8d7Cb9bbd937452f7E745D" ], _id: ObjectId('62275a5b1722b740ade011ad') } ]}Esquema del documento
const transaction = new mongoose.Schema({ id: {type: Number, required:true}, greeterAddress: {type:String, required:true}, executed: {type:Number, required:true}, value: {type:String, required:true}, approved:{type: [String]} }) const walletInfo = new mongoose.Schema({ walletAddress: {type: String, required: true}, networkName: {type: String, required:true}, minApproval: {type: Number, required:true}, ownerAddress: {type: [String]}, greeter: {type: [String]}, transactionList: {type:[transaction]} })Código ejecutado que está dando el error.
app.post('/approve_transaction', async(req,res)=>{ walletAddress = req.query.address id = req.query.id greeterAddress = req.query.greeterAddress await walletInfo.updateOne( { walletAddress:walletAddress, 'transactionList.id':id, 'transactionList.greeterAddress':greeterAddress }, { $push:{ 'transactionList.approved':walletAddress } }) res.sendFile('success') })Documento presente a continuación
{ "_id" : ObjectId("62275a0f1722b740ade011a9"), "walletAddress" : "0xDcb980b3d6Bd61a86A8d7Cb9bbd937452f7E745D", "networkName" : "4", "minApproval" : 1, "ownerAddress" : [ "0x6ED8cB56eF8602e138E7e588EA65A5b33f402087", "0x6cb691b71CB057e3C92DBB729580e1A7A2868e1c" ], "greeter" : [], "transactionList" : [ { "id" : 0, "greeterAddress" : "0x0", "executed" : 0, "value" : "namaste", "approved" : [], "_id" : ObjectId("62275a5b1722b740ade011ad") } ], "__v" : 0 }Problema resuelto al reemplazar la lista de transactionList.approved por la lista de transactionList.$.approved