прямое подключение в mongodb: альтернатива странификации с Skip и Limit
Pagination - это общая техника, используемая для получения данных в управляемых кусочках. При внедрении модификаторов MongoDB .skip () и .limit () является общим подходом. Однако получение последнего документа _id для последующих запросов может быть сложным. Основная концепция включает в себя поиск _id последнего документа на странице и использование его в качестве нижней границы для следующей страницы. var cursor = db.users.find (). Limit (pageSize); var doc = coursor.next (); var last_id = doc._id; // Страница 2 var cursor = db.users.find ({'_ id'> last_id}). Limit (10);
Этот подход эффективно извлекает следующий набор документов, не потребляя чрезмерную память.
прямое подсказка с критериями пользовательской сортировки
, в то время как естественный порядок _id упрощает подъемную пейдж, он становится более сложным при использовании пользовательской сортировки. Один подход состоит в том, чтобы отслеживать как последнее звание ранга документа (или другое поле сортировки), так и список уже полученных. var seeids = []; var lastseenrank = null; var cursor = db.junk.find (). sort ({"rank": -1}). Limit (2); // ... // Страница 2 var cursor = db.junk.find ( {"_id": {"$ nin": seeids}, "Rank": "$ lte": lastseenrank} ) .sort ({"rank": -1}). Limit (2);
это позволяет вам исключать уже виденные документы и поддерживать желаемый порядок сортировки.
// Page 1 var cursor = db.users.find().limit(pageSize); var doc = cursor.next(); var last_id = doc._id; // Page 2 var cursor = db.users.find({'_id'> last_id}). limit(10);Заключение
]
вперед с Mongodb обеспечивает эффективное решение для сочувствия, особенно с большим. Это позволяет вам получать определенные диапазоны данных без ущерба для производительности, но это имеет некоторые ограничения, такие как неспособность легко отступить или прыгать на определенные страницы. Понимание этих концепций позволяет эффективно использовать этот подход в ваших приложениях MongoDB. ]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3