[英]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.