MongoServerError: Cannot create field 'approved' in element

MongoServerError: Cannot create field 'approved' in element

我想将元素推入嵌套元素内的数组中。
有人问过类似的问题。我尝试了这些解决方案,但对我没有用。
错误信息是

MongoServerError: Cannot create field 'approved' in 
element {transactionList: [ { id: 0, greeterAddress: "0x0", executed: 0, value: 
"namaste", approved: [ "0xDcb980b3d6Bd61a86A8d7Cb9bbd937452f7E745D", 
"0xDcb980b3d6Bd61a86A8d7Cb9bbd937452f7E745D" ], _id: 
ObjectId('62275a5b1722b740ade011ad') } ]}

文档架构

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]}
})

执行的代码给出了错误

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')
       
    
})

文件如下

{
"_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
}

通过将 transactionList.approved 替换为 transactionList.$.approved

解决了问题