Разбиение на страницы с MongoDB

Я использовал MongoDB и RoR, чтобы хранить регистрирующиеся данные. Я вытаскиваю данные и надеюсь разбивать на страницы результаты. Кто-либо сделал подкачку страниц с MongoDB или знает о каких-либо ресурсах онлайн, которые могли бы помочь запустить меня?

Аплодисменты

Eef

17
задан RailsSon 14 January 2010 в 13:06
поделиться

1 ответ

Это может быть очень полезно для конструктора, который содержит общий код; частные конструкторы могут вызываться другими конструкторами с помощью нотации 'this (...);'. Делая общий код инициализации в частном (или защищенном) конструкторе, вы также ясно даете понять, что он вызывается только во время построения, что не так, если бы это был просто метод:

public class Point {
   public Point() {
     this(0,0); // call common constructor
   }
   private Point(int x,int y) {
     m_x = x; m_y = y;
   }
};
-121--2031700-

Если честно, я как бы не согласен с большим количеством ответов здесь. Я написал свой первый компилятор (для удовольствия; У меня действительно слишком много кофе/свободного времени), не пройдя курс компиляторов; В основном я просто отсканировал код для другого компилятора и следовал образцу. Я мог бы записать синтаксический анализатор на языке Си с верхней части головы, но я не думаю, что я мог бы вспомнить, как нарисовать автомат отталкивания, если бы от этого зависела моя жизнь.

Когда я решил, что хочу включить вывод типа в свой игрушечный (императивный) язык программирования, я сначала посмотрел, вероятно, пять статей, глядя на что-то, называемое «набранным лямбда-исчислением»... .... * * * *....? Сначала я пытался реализовать что-то с «общими переменными» и «негенеричными переменными» и понятия не имел, что происходит. Затем я сдал все это в утиль и сидел там с блокнотом, выясняя, как я мог реализовать его практически с поддержкой всего, что мне нужно (поднабор, первоклассные функции, параметризованные типы и т.д.) С парой дней мышления и написания тестовых программ, я оторвал более недели, пытаясь разобраться в теоретическом дерьме.

Знание основ вычислений (т.е. как работает виртуальная память, как работают файловые системы, многопоточность/планирование, SMP, структуры данных) оказалось ОЧЕНЬ полезным. Теория сложности и материал Big-O иногда оказываются полезными (особенно полезными для таких вещей, как дизайн RDBMS). Остановка проблемы и автоматы/теория машины Тьюринга? Никогда.

-121--1465071-

Разбиение на страницы в MongoDB может быть выполнено с использованием комбинации limit () и skip () .

Предположим, что в активной базе данных имеется коллекция пользователей.

>> db.users.find().limit(3)

При этом будет получен список первых трех пользовательских документов для нас. Обратите внимание, это по существу то же самое, что писать:

>> db.users.find().skip(0).limit(3)

Для следующих трех мы можем сделать так:

>> db.users.find().skip(3).limit(3)

Это пропускает первые три записи пользователя, и дает нам следующие три. Если в базе данных есть только один пользователь, не беспокойтесь; MongoDB достаточно умна, чтобы возвращать только те данные, которые присутствуют и не сбиваются.

Это может быть обобщено так, и будет примерно эквивалентно тому, что вы будете делать в веб-приложении. Предполагая, что у нас есть переменные, называемые PAGE _ SIZE , которые установлены в 3, и произвольная PAGE _ NUMBER :

>> db.users.find().skip(PAGE_SIZE * (PAGE_NUMBER - 1)).limit(PAGE_SIZE)

Я не могу говорить напрямую о том, как использовать этот метод в Ruby on Rails, но я подозреваю, что библиотека Ruby MongoDB раскрывает эти методы.

37
ответ дан 30 November 2019 в 11:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: