聊天应用程序使用解析服务器列出每个对等方的最后一条消息

时间:2019-05-30 10:00:44

标签: parse-platform parse-server

我正在使用解析服务器做一个聊天应用程序,一切都很好,但是我尝试使每个远程对等方仅列出最后一条消息。我没有发现任何查询限制,如何从每个远程对等方仅收到一条消息,我该怎么做?

2 个答案:

答案 0 :(得分:1)

  

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();

希望我的回答对您有帮助

答案 1 :(得分:0)

如果要使用单个查询执行此操作,则必须使用聚合: 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.
  });