[英]can i apply OR condition here in mongoose (mongodb)
我想更新任何一個鍵,但我不知道如何給出 OR 條件是我可以添加 OR 條件以同時更新任何一個鍵或兩個鍵的任何方式。
const updateBlogs = async (req, res) => {
const { blogId } = req.params;
const re = /<("[^"]?"|'[^']?'|[^'">])*>/;
if (re.test(req.params.blogTitle)) {
sendError(400, "Unsuccessful", "Blog Title cannot be HTML", req, res);
} else {
try {
let blog = await Blog.updateOne(
{ blogId },
{
$set: {
blogTitle: req.body.blogTitle,
blogContent: req.body.blogContent,
},
},
{ runValidators: true }
);
sendResponse(200, "Successfull", blog, req, res);
} catch (err) {
sendError(400, "Blog can't be updated by given id", err, req, res);
}
}
};
您可以根據req.body
中可用的字段預先構建更新文檔。
這是一個例子:
let update = {};
if (req.body.blogTitle) update.blogTitle = req.body.blogTitle;
if (req.body.blogContent) update.blogContent = req.body.blogContent;
let blog = await Blog.updateOne(
{ blogId },
{
$set: update,
},
{ runValidators: true }
);
如您所見,這些字段僅在請求中存在時才被設置,並被傳遞給更新。 請注意,此解決方案假定至少存在一個字段——如果將一個空的更新文檔傳遞給$set
,您將收到錯誤消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.