我已经看过教程,但我不清楚如何处理以下问题并优化我的查询。我在查询中为每个项目进行查询,当然这不是很好,因为我确信它可以通过一个查询完成。
我有以下对象:
用户 - 使用FB记录登录的用户
发布 - 用户创建的发布(具有名为createdBy的字段,带有指向用户的指针
Parse.Installation - 用于创建推送的Installation对象,具有对用户的引用。
现在我正在做的是按日期查询,查找过期的出版物,如下所示:
var Publication = Parse.Object.extend(“Publication”);
var query = new Parse.Query(Publication);
//在这里计算日期......
query.lessThan(“createdAt”,expirationDate);
query.find({
成功:功能(结果){//这里我有所有的出版物 //现在我得到了用户
var aPub = results [i];
var user = aPub.get('createdBy');
var query2 = new Parse.Query(Parse.Installation);
query2.equalTo('user',user);//现在我发送给每个用户的推送
Parse.Push.send({
其中:query2,
数据:{....
...
......
我确信这可以通过一个查询完成,但我不明白如何。
感谢。
答案 0 :(得分:3)
对于查询的第二部分,这仍然使用多个查询,但只有一个API调用。
var userQuery = new Parse.Query(Parse.User);
userQuery.equalTo("objectId", aPub.get('createdBy')id;
// Find devices associated with these users
var pushQuery = new Parse.Query(Parse.Installation);
pushQuery.matchesQuery('user', userQuery);
// Send push notification to query
Parse.Push.send({
where: pushQuery,
data: {}
}, {
success: function() {
// Push was successful
},
error: function(error) {
// Handle error
}
});`
此外,您不需要使用find()
。你可以看看这些方法: