我試圖更新元素。
//架構
var SurveySchema = new Schema({
id: String,
form: [{
sections: [ // each section's a page
{
name: String,
description: String,
input: {
_type: String,
contents: [
{
_id: false,
"text": String,
"value": String
}
]
}
}
]
}]
});
//我的Json
{
"_id": "58fe27e0e340671c9859c995",
"__v": 0,
"form": [
{
"_id": "58fe2b1de437791cd02b9a8c",
"sections": [
{
"_id": "58fe2b1de437791cd02b9a8d",
"input": {
"_type": "radio"
}
}
]
},
{
"_id": "58fe2ca32470711c586d6b6e",
"sections": []
}
]
}
//更新
var save = function(req, res) {
var survey = {};
survey.id = req.params.surveyId; // 58fe27e0e340671c9859c995
survey.form_id = req.params.formId; // 58fe2b1de437791cd02b9a8c
Survey.update(
{ _id: survey.id, // 58fe27e0e340671c9859c995
'form._id': survey.form_id // 58fe2b1de437791cd02b9a8c
},
{'$set': {
'form.$.sections.$.input._type': 'checkbox'
}},
{safe: true, upsert: true},
function(err, model) {
if (err)
res.send(err);
res.json(model);
}
);
};
我想換一個新的價值input._type
:'checkbox'
上的ID :_id: 58fe2b1de437791cd02b9a8c
,但我不斷收到此錯誤消息:"Too many positional (i.e. '$') elements found in path 'form.$.sections.$.input._type'"
和ap p崩潰。
這表示您正在做某件事您應該做的事。 [見文檔](https://docs.mongodb.com/manual/reference/operator/update/positional/#nested-arrays) – styvane
你能發佈你的貓鼬綱要嗎 –
@ DanGreen-Leipciger架構已發佈。如果你想給一些提示,可以自由地說。 –