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