比赛中的多个条件使用$ or或$ and

时间:2018-11-07 08:33:18

标签: javascript node.js mongodb express mongoose

我知道之前已经有人问过这个问题,但我似乎找不到答案,我想过滤显示带有标志1,标志2的节目,以$或封号。

如何判断标志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" } }
            ]
        }
    },
])

1 个答案:

答案 0 :(得分:0)

如果要匹配标记1或标记2,请执行以下操作:

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