#mongodb #mongoose #schema
Вопрос:
У меня есть такая схема
const facilitySchema = new Schema({ desalinations: [{ Type: Schema.Types.ObjectId, // ref: "Desalination" }], DesalinationT1:String, DesalinationT2:String, DesalinationT3:String, DesalinationT4:String, DesalinationT5:String, DesalinationT6:String, DesalinationT7:String, DesalinationT8:String, })
Я хочу запустить обновление, в котором я помещаю каждое опреснение в массив опреснений
Ответ №1:
Это то, что я использовал для этого ПРИМЕЧАНИЕ: ОПРЕСНЕНИЯ БЫЛИ ИЗМЕНЕНЫ НА ROS. Я просматриваю каждую схему объекта и обновляю каждую из них
let facilitiesReturned = await Facility.find({}, (err) =gt; { if (err) { return res.status(400).json({ success: false, error: err }); } }) .clone() .catch((e) =gt; console.log(e)); for (let i = 0; i lt; facilitiesReturned.length; i ) { const ROs = []; for (let s = 1; s lt; 9; s ) { const name = `ROT${s}`; if (facilitiesReturned[i][name]) { const RO = facilitiesReturned[i][name]; ROs.push(RO); } } Facility.updateOne( { _id: facilitiesReturned[i]._id }, { // $set: { customers: [] }, $addToSet: { ROs: { $each: [...ROs], }, }, }, (err, result) =gt; { if (err) { console.log(err); } } ).clone(); } console.log("Finished updating"); });