【发布时间】:2020-06-05 17:16:44
【问题描述】:
我正在尝试更新我的收藏中的一个元素。它是一个二维数组。我尝试直接修改它,我尝试更新整个数组结构并尝试使用 set 方法。没有什么能给我带来成功。
这是我的模型:
var nestedInside = mongoose.Schema({
x: Number,
y: Number,
block: {
type: Boolean,
default: false
},
answer: String,
question: String,
questionnr: Number,
vertical: Boolean,
questionnr2: Number,
question2: String,
vertical2: Boolean,
tmp: String,
question_vertical: String,
question_horizontal: String,
question_num: Number
})
var schema = mongoose.Schema({
grid: [[nestedInside]]
})
var create = mongoose.model('puzzles', schema);
这是我执行以下代码时的错误:
puzzle.findOne({_id:req.params.id}).exec(function(err,data) {
var grid = data.grid;
grid[req.body.xo].id(req.body._id)["question_vertical"] = req.body.question_vertical
data.save();
errorMongoError: Cannot create field 'question_vertical' in element {0: [ { block: false, _id: ObjectId('5dec2f1dde95855cf9130f50')...
当我尝试替换整个数组时,它说:Cast to Array failed for value
有人知道吗?我没有我知道的选择。
样本数据:
"_id":{
"$oid":"5da1097076a05f2c50f34001"
},
"free":false,
"package":{
"$numberInt":"6"
},
"grid":[
[
{
"block":false,
"_id":{
"$oid":"5da1097076a05f2c50f34008"
},
"x":{
"$numberInt":"1"
},
"y":{
"$numberInt":"1"
},
"answer":"G",
"question_num":{
"$numberInt":"1"
},
"question_vertical":"Abk.: Grundgesetz",
"question_horizontal":"kostenlos"
},
....
]
],
....
【问题讨论】:
-
你能提供一个示例文件
-
我已将其添加到我的帖子中
标签: javascript node.js mongodb mongoose