Я пытаюсь запросить коллекцию с более чем 10 тысячами документов, используя фильтр по свойству. Допустим, мне нужны все документы, где свойство isVisible
равно true
. Что я делаю в понедельник goose, так это
let docs = await DocumentModel.find({isVisible: true}).lean();
Но для выполнения этой операции требуются годы! Если я запускаю тот же запрос непосредственно в MongoShell, я получаю документы примерно через 600 мс. Теперь я прочитал, что использование агрегации может помочь, но если я использую Mon goose один, я не получу никакой выгоды
let docs = await DocumentModel.aggregate([{$match: {isVisible: true}}]).lean();
, в то время как если я использую MongoClient, использую экземпляр коллекции модели mon goose я получаю сообщение об ошибке в функции toArray()
let docs = await DocumentModel.collection.aggregate([{$match: {isVisible: true}}]).toArray();
и получаю это
TypeError: DocumentModel.collection.aggregate(...).toArray is not a function
Итак, как мне получить хорошее время отклика для этот запрос с пн goose тоже?