【问题标题】:Multiple condition in match use $or or $and匹配中的多个条件使用 $or 或 $and
【发布时间】:2019-04-10 16:03:48
【问题描述】:

我知道以前有人问过这个问题,但我似乎找不到答案,我想过滤带有标志 1、标志 2 的节目,在 $ 或用于 seacrhing。

如果标志 2 条件,标志:1 和标志:2,在我的代码中只有一个标志:1

information = await information.aggregate([
    {
        $project: {
            "info_text": "$info_text",
            "flag": "$flag",
            "published_at": { $dateToString: { format: "%d/%m/%Y", date: "$published_at" } },
            "approved": "$approved"
        }
    },
    {
        $match: {
            flag: 1,
            $or: [
                { "info_text": { "$regex": req.query.query.generalSearch, "$options": "i" } },
                { "flag": { "$regex": req.query.query.generalSearch, "$options": "i" } },
                { "published_at": { "$regex": req.query.query.generalSearch, "$options": "i" } }
            ]
        }
    },
])

【问题讨论】:

  • 不清楚你想要达到的目标

标签: javascript node.js mongodb express mongoose


【解决方案1】:

如果要匹配标志 1 或标志 2,只需执行以下操作:

$match: {
            $or: [
                {flag : 1},
                {flag : 2}
            ]
        }

【讨论】:

    猜你喜欢
    • 2017-10-31
    • 1970-01-01
    • 2014-08-13
    • 2017-07-29
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 2021-09-18
    相关资源
    最近更新 更多