MongoDB - Фильтр по первому полю сложного индекса из двух полей и сортировка по второму полю? - PullRequest
0 голосов
/ 06 ноября 2019

Я вставляю данные в мою коллекцию MongoDB следующего формата.

{'customer_id': 1, 'timestamp': 200}
{'customer_id': 2, 'timestamp': 210}
{'customer_id': 3, 'timestamp': 300}

У меня есть составной индекс , созданный с ключами: { 'customer_id': 1, 'timestamp': -1 }

db.collection.createIndex( { customer_id: 1, timestamp: -1 } , { name: "query for inventory" } )

Теперь мне нужно фильтр , чтобы я получал документы с customer_id = 1 или 2, а затем сортировал документы на timestamp(в нисходящем формате, последний будет вверху).

Мой запрос выглядит так:

db.collection.find( { 'customer_id': { '$in': [ 1, 2 ] } } ).sort( { 'timestamp': -1 } ).limit( 100 ) 

Я знаю, как выполнить запросно я не уверен, должен ли я использовать этот составной индекс или использовать два индекса в отдельных полях или оба.

Было бы очень полезно получить разъяснение о том, какой подход использовать и почему этот подходлучше.

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