Я вставляю данные в мою коллекцию 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 )
Я знаю, как выполнить запросно я не уверен, должен ли я использовать этот составной индекс или использовать два индекса в отдельных полях или оба.
Было бы очень полезно получить разъяснение о том, какой подход использовать и почему этот подходлучше.