Я столкнулся с проблемой медленных запросов в моей базе данных mongoDB, индексация выполнена правильно, я проверил отсутствие повторяющихся числовых идентификаторов, хотя у меня возникает проблема с медленными запросами. Я использую запрос findOne, в котором он сканирует всю базу данных и возвращает только один документ. Он также сообщает, что в этой операции он не может использовать индекс, а время выполнения операции составляет около 40-50 мс, что приводит к медленному выполнению запроса. Что можно сделать, чтобы избежать такого сценария.
Коллекция выглядит так
{_id: "MongoDBId";
userId: "MongoDBId";
arrFlield1: "arrayOfString";
arrField2 : "arrayOfString";
numericId : "Integer"}
И запрос, который я использую,
db.collection.findOne({userId:"userId"})
Спасибо @prasad_ после того, как я прикрепил индекс к идентификатору пользователя, эта проблема была решена. Я использовал это: - db.collection.createIndex({userId:1})

После того, как я прикрепил индекс к конкретному полю запроса userId, эта проблема была решена. Дело в том, что индексация была привязана к _id, ее нужно прикрепить к полю запроса, чего не было сделано. Как упоминал @_prasad, я сначала получаю индекс с помощью этой команды.
db.collection.getIndexes()
Затем я создал индекс для конкретного поля запроса, используя команду ниже.
db.collection.createIndex({userId:1})
Возможно, вы захотите включить версию MongoDB, код, используемый для создания индекса, и указать, сколько документов содержится в коллекции. Сделайте
db.collection.getIndexes()и убедитесь, что индексuserIdсуществует. Чтобы узнать, используется ли индекс для запроса, используйтеexplain()для создания плана выполнения запроса.