Helo,
У меня есть коллекция mongodb, содержащая около 20 000 документов.Удаленные документы также хранятся в коллекции, что означает, что они «мягко» удалены.
Теперь я хочу запросить документы на основе ключа состояния.Статус может быть «открыт», «закрыт» или «удален».Мне нужны записи со статусом «закрыто»
. Я вижу, что количество документов, удовлетворяющих моим критериям, составляет только 25.Тем не менее, отсканированные документы (после применения индекса) имеют размер 18 тыс.
Следовательно, выполнение моего запроса занимает около 2 минут, а время ожидания истекает.
Мои первые вопросы: 1. Должен ли запрос, выполняемый для документов размером 20 тыс., Занимать так много времени?20к не такой большой счет, верно?2. Может ли кто-нибудь помочь мне с дальнейшей оптимизацией запроса, если это возможно?Помещение удаленных записей в отдельную коллекцию архивов - последнее, что я хотел бы сделать.
Вот мой текущий запрос:
**
db.collectionname.find({$and: [{ $and: [{ status: {$ne: 'open'} },{ status: {$ne: 'deleted'} }] },
{ 'submittedDate': { $gte: new Date("2019-02-01T00:00:00.000Z"), $lte: new Date("2019-02-02T00:00:00.000Z") } }
] })
**