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

时间:2014-07-01 10:38:20

标签: parse-platform pfquery

我有一个帖子的有效期有限的应用程序。 每个人都喜欢为帖子添加生命。

在我的表格中,我有一个字段initialDeletionDate和一个跟踪喜欢数量的计数器。 在我的新闻源中,我试图查询对象,但我只想获得仍然活着的对象。

所以基本上,我想做的是将所有对象放在:

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

类似......:

[query whereKey:@"initialDeletionDate" lessThan:[NSDate date] - "key: counter"];

我该怎么做?

1 个答案:

答案 0 :(得分:1)

我建议在您的班级中添加第3个字段,该字段具有最终删除日期。您可以更新客户端代码或创建云方法,将此日期的值设置为initialDeletionDate + (counter*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();
}