Несколько условий в совпадении используют $ или или $ и - PullRequest
0 голосов
/ 07 ноября 2018

Я знаю, что об этом уже спрашивали, но я не могу найти ответ, я хочу отфильтровать шоу с флагом 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 голосов
/ 07 ноября 2018

Если вы хотите сопоставить, если это флаг 1 или флаг 2, просто сделайте следующее:

$match: {
            $or: [
                {flag : 1},
                {flag : 2}
            ]
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...