0
私は順序リストを持っています。真ん中のリストに1つ追加したいと思います。私は問題なくソートしていますが、変更はもう少し難しいようです。主な目標は、送信されたものと等しいものをすべて見つけて更新することです。私はそれらを見つけるように私はそれらを更新するだろうが、私はループ内の関数を持つことはできません。mongoose setサブ文書を更新します。
function updateNumbersAfterArticles(searchableid, number){
var m_searchableid = new ObjectId(searchableid);
m_Kbase_data.findOne({_id : m_searchableid}, function(err, kbase_data){
if (kbase_data.Steps.length === 1){
var updated_step = new m_KbaseScript_schema({step: kbase_data.Steps[0].step + 1, description : kbase_data.Steps[0].description, image : kbase_data.Steps[0].image});
m_Kbase_data.update({_id : m_searchableid, 'Step._id' : kbase_data.Steps[0]._id },
{$set: { "Steps.$": updated_step }},
function(err, updateRows){
//if (err) res.status(500);
console.log(updateRows);
}
);
return;
}
else{
var updated_step2 = [];
for (var i = 1; i < kbase_data.Steps.length; i++) {
if (kbase_data.Steps[i].step >= number){
console.log("pushed");
updated_step2.push(new m_KbaseScript_schema({step: kbase_data.Steps[i].step + 1, description : kbase_data.Steps[i].description, image : kbase_data.Steps[i].image}));
}
}
console.log(updated_step2);
m_Kbase_data.update({_id : m_searchableid, },
{$set: { "Steps.$": updated_step2 }},
function(err, updateRows){
//if (err) res.status(500);
console.log(updateRows);
}
);
}
});
}
私はそれを実行すると、私はプッシュのすべてを見ることができます。彼らは正しく更新されるようです。しかし、私はデータベースを更新するつもりはありません。