Я ищу ObjectId везде, как будто это торт.
Это нормально? Поля _id
должны просматриваться как сумасшедшие, верно?
Я ищу ObjectId везде, как будто это торт.
Это нормально? Поля _id
должны просматриваться как сумасшедшие, верно?
_id — первичный ключ. Он проиндексирован. Конечно, это быстро.
Более точный ответ: MongoDB использует индексы B-Tree. Поиск определенного значения в B-дереве имеет сложность O(log n) в среднем и наихудшем случае, что можно считать достаточно быстрым (то есть бинарный поиск). Однако это не постоянная сложность = O (1), поэтому у вас все еще могут быть некоторые эффекты замедления, если размер индекса становится больше, чем доступная оперативная память. (MongoDB старается хранить индексы в ОЗУ, и каждый ввод-вывод, необходимый для поиска индекса на диске, значительно замедляет ваш запрос).
ObjectIds
, если ваш основной метод доступа к данным, будет самым быстрым способом получить ваши данные из MongoDB. Мы используем нашу MongoDB в качестве репозитория с ключами для большей части нашего доступа к данным. У вас будут отличные результаты, делая то, что вы делаете.
Индекс в поле _id автоматически создается монго и первичным ключом по умолчанию. По скорости доступ к документам по полю _id будет очень быстрым.
Какие у вас есть опасения?