Эффективно делать большие запросы с Mongoose - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь запросить коллекцию с более чем 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 тоже?

...