如何在 mongoose 中使用 update many 来循环遍历 8 个元素并将它们放入该模式中的数组中
Posted
技术标签:
【中文标题】如何在 mongoose 中使用 update many 来循环遍历 8 个元素并将它们放入该模式中的数组中【英文标题】:How to use update many in mongoose to loop through 8 elements and put them into an array in that schema 【发布时间】:2021-12-21 14:11:25 【问题描述】:我有这个架构
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,
)
我想运行一个 updateMany,将每个 DesalinationTi 放入 desalinations 数组中
【问题讨论】:
【参考方案1】:这是我以前做的 注意:海水淡化已更改为 ROS 我遍历每个设施模式并更新其中的每一个
let facilitiesReturned = await Facility.find(, (err) =>
if (err)
return res.status(400).json( success: false, error: err );
)
.clone()
.catch((e) => console.log(e));
for (let i = 0; i < facilitiesReturned.length; i++)
const ROs = [];
for (let s = 1; s < 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) =>
if (err)
console.log(err);
).clone();
console.log("Finished updating");
);
【讨论】:
以上是关于如何在 mongoose 中使用 update many 来循环遍历 8 个元素并将它们放入该模式中的数组中的主要内容,如果未能解决你的问题,请参考以下文章
如何在 mongoose 中使用 update many 来循环遍历 8 个元素并将它们放入该模式中的数组中
Mongoose 4.x“model.update()”回调改变
如何在 mongoose/mongodb 查询子文档中使用 mapreduce?