检查字段值是否在数组中退出-MongoDB

时间:2019-03-11 16:22:56

标签: mongodb mongoose nosql

我正在使用MongoDB,并且具有以下人员收集模式:

Person {
    age: [number]
}
我想检查一个人的年龄是否存在于数组中,例如[15,20,12,0]。我需要类似 $ in 的运算符,但相反。

模式:

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

1 个答案:

答案 0 :(得分:1)

您可以将$expr$in结合使用:

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

编辑:要比较需要$setIntersection$size运算符的数组,请尝试:

Person.find({
    $expr: {
        $gt: [
            {
                $size: {
                    $setIntersection: [
                        [
                        "15",
                        "a",
                        "12",
                        "0"
                        ],
                        "$age.x"
                    ]
                }
            },
            0
        ]
    }
})