Nodejs根据父亲表的数据来更新子表中的数据

MongoDb中现在有个两张表,一张表parent,另外一张表child,child表中通过parent_id字段来与parent表进行关联

parent表中的字段为_id,name,title,author

child表中的字段哪位_id,content,misc,parent_id(parent_id即为parent表中的_id)

需求:

把所有child表中的数据,字段为misc的值改为parent表中的name值,如何实现? 同步的代码思路没有问题,但是mongoose查询的返回是异步的,如何来处理呢?

阅读 1.9k
1 个回答

类似下面这样吧,代码可能有点小问题,仅供参考,其实就是 async/await 控制下异步流程

(async () => {
    try {
        let childs = await ChildModel.find().exec();
        for (let i = 0; i < childs.length; i++) {
            let newMisc = await ChildModel.findOne({ _id: childs[i].parent_id }, 'name').exec();
            await ChildModel.findOneAndUpdate({_id: childs[i]._id}, { $set:{ misc: newMisc }})
        }
    } catch (error) {
        console.log(error);
    }
})()
推荐问题