$in 运算符是否有一些内置记忆

Does $in operator has some build in memoization

我知道我可以使用 $in 在特定字段上搜索多个值。例如,如果我有这个数组怎么办:

[1, 2, 2, 2, 3, 4]

假设这就是我们要查询的 ID。

我的问题是,mongodb 是否为每个元素查询 6 次,或者 mongodb 是否有一些内置记忆,所以它只查询 4 ​​次,因为 2 在这里 3 次所以不用再查询了

explain帮手可以说清楚:

PRIMARY> db.collection.explain().find({a:{$in:[1, 2, 2, 2, 3, 4]}}).next().queryPlanner

{
    "plannerVersion" : 1,
    "namespace" : "test.collection",
    "indexFilterSet" : false,
    "parsedQuery" : {
        "a" : {
            "$in" : [
                1,
                2,
                3,
                4
            ]
        }
    },
    "winningPlan" : {
        "stage" : "EOF"
    },
    "rejectedPlans" : [ ]
}