我有一个帖子的有效期有限的应用程序。 每个人都喜欢为帖子添加生命。
在我的表格中,我有一个字段initialDeletionDate和一个跟踪喜欢数量的计数器。 在我的新闻源中,我试图查询对象,但我只想获得仍然活着的对象。
所以基本上,我想做的是将所有对象放在:
initialDeletionDate + counter*time < [NSDate date]
//time = 1200 sec
类似......:
[query whereKey:@"initialDeletionDate" lessThan:[NSDate date] - "key: counter"];
我该怎么做?
答案 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();
}