Mongodb查询与JavaScript数组方法性能
要执行简单的更新任务或筛选任务,应该使用哪些?对于这里显示的简单任务,我应该使用Js数组方法还是mongodb查询 我需要一个解释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
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