Я пытаюсь обновить элемент в моей коллекции. Его двумерный массив. Я попытался напрямую изменить его, я попытался обновить всю структуру массива и попытался использовать метод 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')...
Когда я пытаюсь заменить весь array он говорит: 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"
},
....
]
],
....