проверить, не завершено ли значение поля в массиве - MongoDB - PullRequest
1 голос
/ 11 марта 2019

Я использую MongoDB, и у меня есть следующая схема сбора лиц:

Person {
    age: [number]
}

Я хочу проверить, существует ли возраст человека в массиве, например [15, 20, 12,0].мне нужно что-то вроде $ в операторе , но в обратном порядке.

схема:

initiatives : {
    ressources: [
        { departement: ObjectId }
        { departement: ObjectId }
    ]
)

1 Ответ

1 голос
/ 11 марта 2019

Вы можете использовать $ expr с $ в :

Person.find({ $expr: { $in: [ "$age", [15, 20, 12, 0] ] } })

РЕДАКТИРОВАТЬ: для сравнения нужных вам массивов $ setIntersection и $ размер операторы, попробуйте:

Person.find({
    $expr: {
        $gt: [
            {
                $size: {
                    $setIntersection: [
                        [
                        "15",
                        "a",
                        "12",
                        "0"
                        ],
                        "$age.x"
                    ]
                }
            },
            0
        ]
    }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...