0

我有一个应用程序,其中帖子的生命周期有限。每个喜欢都为帖子增添了活力。

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

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

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

就像是...:

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

我怎样才能做到这一点?

4

1 回答 1

1

我建议在您的班级中添加一个具有最终删除日期的第三个字段。您可以更新您的客户端代码或创建一个云方法,将此日期的值设置为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();
}
于 2014-07-01T21:38:20.113 回答