我正在使用解析服务器做一个聊天应用程序,一切都很好,但是我尝试使每个远程对等方仅列出最后一条消息。我没有发现任何查询限制,如何从每个远程对等方仅收到一条消息,我该怎么做?
答案 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
获取查询的第一个对象
在这种情况下,如果您确实只希望得到一个结果,则可以使用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.
});