Я думаю, что этот вопрос состоит из двух частей: № 1: запрос, № 2: производительность.
1: запрос
Это может быть легкосделано с использованием $in
предложения .
2: производительность
В предложении $in
имеется только один логический способ сделать это с точки зрения БД.По сути, он будет выполнять поиск по одному индексу для каждого элемента, который у вас есть.
Теперь, если вы следуете стандартному протоколу и сохраняете весь свой индекс в ОЗУ, то этот запрос, вероятно, будет выполнен менее чем за секунду.У меня есть несколько мощных серверов с сотнями миллионов, и такой поиск для 100 «UIDS» возвращается примерно через 500 мс.
YMMV.Вы можете повысить производительность, разделив ее на части и выполнив несколько одновременных запросов, просто чтобы убедиться, что на сервере работают несколько потоков.