Как я могу убедиться, что выбрал только самые последние сообщения в БД? - PullRequest
1 голос
/ 02 мая 2019

Я пытаюсь выяснить, насколько точно я должен убедиться, что я получаю только самые последние x сообщений из БД.

Мои текущие методы выборки работают следующим образом:

GetPeopleIFollowAnd loop over each UID
        For each UID fetch his posts

Тем не менее, я не могу эффективно (быстро) получать только самые последние x сообщений. Как я могу это сделать?

Некоторые возможные идеи, которые у меня есть:

  • Создайте новый узел, который каждый раз, когда один из ваших подписчиков публикует сообщение, будет добавляться под вашим UID с отметкой времени. Поэтому, когда я выбираю, я перебираю этот FollowersWhoCreatedRecently для каждого UID и делаю это только для первых 10

Проблемы, с которыми я сталкиваюсь при рассмотрении вышеупомянутого решения, состоят в том, что если бы у пользователя были миллионы людей, следующих за ним, это было бы ужасно медленным, когда дело доходит до обновления каждого из этих миллионов

Я обнаружил, что это может быть полезным. Как я мог это использовать?

Моя структура БД для постов выглядит следующим образом

Post
  UID
    postID
       Media
          media
             image: URL

На основе структуры последователя, например:

WhoFollowsMeNode/UID/uid: true

Я должен был бы, каждый раз, когда пользователь публикует сообщения, проходить по этому списку, где для каждого пользователя я бы добавлял пост к временной шкале ... Это кажется невозможным, и тем не менее то, что, по-видимому, он делает здесь .

1 Ответ

2 голосов
/ 02 мая 2019

В базе данных реального времени вы можете использовать метод limitToLast(), затем вы можете передать, сколько элементов вы хотите получить, этот метод будет извлекать последнюю информацию, которая была добавлена ​​в узел, так как документы упорядочены с отметка времени, если вы получите их с помощью limitToLast(10), вы можете получить последние 10 сообщений пользователя.

Если вы работаете со списком сообщений, вы можете инвертировать этот список, когда будете показывать его пользователю; после этого вы увидите самые последние данные, а старые - ниже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...