簡體   English   中英

Mongodb 查詢與 JavaScript 數組方法性能

[英]Mongodb queries vs JavaScript Array method performance

做簡單的更新任務或過濾任務應該使用哪些? 對於此處顯示的簡單任務,我應該使用 Js Array 方法還是 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是從body傳過來的,用來更新數據

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循環,以防您被迫一次更新一個文檔,因為此循環允許在其中使用await

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM