簡體   English   中英

我可以在 mongoose (mongodb) 中應用 OR 條件嗎

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

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