Чат приложение список последних сообщений каждого пира с помощью сервера разбора - PullRequest
0 голосов
/ 30 мая 2019

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

Ответы [ 2 ]

1 голос
/ 30 мая 2019

Ограничение запроса с помощью Parse SDK

Чтобы ограничить количество объектов, получаемых по запросу, вы используете limit

Вот небольшой пример:

    const Messages = Parse.Object.extend("Messages");
    const query = new Parse.Query(Messages);
    query.descending("createdAt");
    query.limit(1); // Get only one result

Получить первый объект запроса с помощью Parse SDK

В вашем случае, поскольку вы действительно хотите получить только один результат, вы можете использовать Query.first . Как и Query.find метод Query.first делает запрос и возвращает только первый результат Query

Вот пример:

    const Messages = Parse.Object.extend("Messages");
    const query = new Parse.Query(Messages);
    query.descending("createdAt");
    const message = await query.first();

Надеюсь, мой ответ поможет вам 10

0 голосов
/ 03 июня 2019

Если вы хотите сделать это с помощью одного запроса, вам придется использовать агрегат: https://docs.parseplatform.org/js/guide/#aggregate

Попробуйте что-то вроде этого:

var query = new Parse.Query("Messages");
var pipeline = [
  { match: { local: '_User$' + userID } },
  { sort: { createdAt: 1 } },
  { group: { remote: '$remote', lastMessage: { $last: '$body' } } },
];
query.aggregate(pipeline)
  .then(function(results) {
    // results contains unique score values
  })
  .catch(function(error) {
    // There was an error.
  });
...