Mongodb查询与JavaScript数组方法性能

Mongodb查询与JavaScript数组方法性能,javascript,arrays,database,mongodb,Javascript,Arrays,Database,Mongodb,要执行简单的更新任务或筛选任务,应该使用哪些?对于这里显示的简单任务,我应该使用Js数组方法还是mongodb查询 我需要一个解释 try { let subCategory= await SubCategory.findById(req.params.subId); let previousSlug= subCategory.slug; let product= await Product.find({subCatSlug:pr

要执行简单的更新任务或筛选任务,应该使用哪些?对于这里显示的简单任务,我应该使用Js数组方法还是mongodb查询

我需要一个解释

try {
        let subCategory= await SubCategory.findById(req.params.subId);
        let previousSlug= subCategory.slug;
        
        let product= await Product.find({subCatSlug:previousSlug});

        product.forEach(el=>{
            
            el.subCatSlug=req.body.slug;
            el.subCatName=req.body.name;
            el.save();
            
        })
        
        subCategory= await SubCategory.findByIdAndUpdate(req.params.subId,req.body,{
            new: true,
            runValidators: true
        })
        
        res.json({
            data:subCategory,
            message:"Sub category is updated!"
        })
    }
或者:此处从主体传递
Id
,以更新数据

try {
        const newData = req.body;

        const oldSubCategory = await SubCategory.findOne({_id: newData._id});

        await SubCategory.findByIdAndUpdate(req.body._id, req.body ,{
            new: true,
            runValidators: true
        })

        if(oldSubCategory.slug !== newData.slug || oldSubCategory.subCatName.trim() !== newData.subCatName.trim()){
            await Product.updateMany({subCatSlug:previousSlug}, {$set: {subCatSlug: req.body.slug, subCatName: req.body.subCatName}});
        }

        res.json({
            message: "Sub category is updated"
        })
    } catch (error) {
        if (!err.statusCode) {
            err.statusCode = 500;
            err.message = 'Something went wrong on database operation!'
        }
        next(err);
    }
}
updateMany()
总是比使用
save()
方法一次更新一个文档要快。此外,我还建议使用
for of
循环,以防您一次只能更新一个文档,因为该循环允许在其中使用
wait