Parse platform Parse.com:使用另一个查询的结果进行查询

Parse platform Parse.com:使用另一个查询的结果进行查询,parse-platform,pfquery,Parse Platform,Pfquery,我有一个帖子生命周期有限的应用程序。 每一个喜欢的人都会给这个职位增添活力 在我的表中,有一个字段initialDeletionDate和一个计数器,用于跟踪喜欢的数量。 在我的新闻提要中,我试图查询对象,但我只想得到仍然存在的对象 所以基本上,我想做的是获取所有对象,其中: initialDeletionDate + counter*time < [NSDate date] //time = 1200 sec 我该怎么做呢?我建议在类中添加第三个字段,该字段具有最终删除日期。您可以更新

我有一个帖子生命周期有限的应用程序。 每一个喜欢的人都会给这个职位增添活力

在我的表中,有一个字段initialDeletionDate和一个计数器,用于跟踪喜欢的数量。 在我的新闻提要中,我试图查询对象,但我只想得到仍然存在的对象

所以基本上,我想做的是获取所有对象,其中:

initialDeletionDate + counter*time < [NSDate date]
//time = 1200 sec

我该怎么做呢?

我建议在类中添加第三个字段,该字段具有最终删除日期。您可以更新客户端代码或创建一个云方法,将此日期的值设置为
initialDeletionDate+(计数器*1200)

然后,当您查询时,您只需询问尚未达到计算删除日期的记录:

[query whereKey:@"calculatedDeletionDate" greaterThan:[NSDate date]];
更新:

这里是“保存前云”功能的起点

// include Moment library for easier date handling
var moment = require("moment");

Parse.Cloud.beforeSave("YourClassNameHere", function(request, response) {
    var yourClass = request.object;

    if (yourClass.dirty("initialDeletionDate")
        || yourClass.dirty("counter"))
    {
        // recalculate
        var initialDate = yourClass.get("initialDeletionDate");
        var counter = yourClass.get("counter");
        // use Moment library to manipulate the date
        var calculatedDate = moment(initialDate)
            .add('minutes', counter * 2)
            .toDate();
        yourClass.set("calculatedDeletionDate", calculatedDate);
    }
    response.success();
}

谢谢你的回答,蒂莫西。我是否从iOs客户端调用cloudcode方法?如果多个用户同时递增计数器,“calculatedDeletionDate”是否准确?@SanchoSanchez如果创建“保存前云”函数,则它将能够正确更新计算。我会给你的答案加上一个样本,你真是太好了!
// include Moment library for easier date handling
var moment = require("moment");

Parse.Cloud.beforeSave("YourClassNameHere", function(request, response) {
    var yourClass = request.object;

    if (yourClass.dirty("initialDeletionDate")
        || yourClass.dirty("counter"))
    {
        // recalculate
        var initialDate = yourClass.get("initialDeletionDate");
        var counter = yourClass.get("counter");
        // use Moment library to manipulate the date
        var calculatedDate = moment(initialDate)
            .add('minutes', counter * 2)
            .toDate();
        yourClass.set("calculatedDeletionDate", calculatedDate);
    }
    response.success();
}