MongoDB: производительность запросов с $ match против $ match - PullRequest
0 голосов
/ 24 октября 2018

Метод-1

db.getCollection('testColl').find({
    "car": { 
        "$elemMatch": {
            "brand": {
                "$in": [                    
                "bmw","audi"           
                ]
            }
        }
    }
})

Метод-2

db.getCollection('testColl').find({
    "car.brand" :{$in : ["bmw","audi"]}

Оба возвращают один и тот же результат, но мне было интереснокакой путь будет эффективным в использовании (данные около 50 миллионов).Также вы можете объяснить причину. Спасибо !!

1 Ответ

0 голосов
/ 24 октября 2018

Как сделать query performance в 3 быстрых шага:

Шаг 1 : Запустите ваши запросы с объяснением:

db.getCollection('testColl').find({
    "car": { 
        "$elemMatch": {
            "brand": {
                "$in": [                    
                "bmw","audi"           
                ]
            }
        }
    }
}).explain({verbose: true})

и

db.getCollection('testColl').find({
    "car.brand" :{$in : ["bmw","audi"]}).explain({verbose: true})

Шаг 2 : Читайте об объяснении

Шаг 3 : Читайте о каждом из методов, чтобы понять, почему именно результатыкак они

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...