如何在解析对象属性上设置 TTL

How can I set a TTL on a Parse Object Attribute

我看到了这个posthttps://www.parse.com/questions/ttl-support

但是,经过广泛搜索后,我没有发现其他对话或 post 与 Parse 中类似 TTL 的功能有关。

有人做过这样的事吗?

我将 Firebase URI 保存在一个解析对象中,并在设定的时间 (TTL) 后删除这些引用。

一种方法是使用 Parse Cloud Code 设置作业。这种方式需要Parse Command Line Tool。您可以按照此快速入门来设置所有内容。

例如,假设您在 'Content' class:

中有一个这样的对象
{
    "belongsTo": {
        "__type": "Pointer",
        "className": "Test",
        "objectId": "98765"
    },
    "createdAt": "2016-01-01T00:00:00.004Z",
    "expiration": {
        "__type": "Date",
        "iso": "2016-02-01T00:00:00.004Z"
    },
    "isLive": true,
    "content": "This is a text",
    "objectId": "01234",
    "updatedAt": "2016-01-03T12:49:33.004Z"
}

您想将字段 "isLive" 切换为 false 以实质上防止您的查询返回旧数据。你可以使用这样的东西:

Parse.Cloud.job('ExpirationCheck', function(request, status)  {
    Parse.Cloud.useMasterKey();
    var d = new Date();
    var now = new Date(d.getTime()); 
    var query = new Parse.Query('Content');
    query.lessThanOrEqualTo('expiration', now );
    query.each(function(row) {
        row.set('isLive', false);
        return row.save()
    }).then(function() {
        status.success('Success');
    }, function(error) {
        status.error('Error');
    });
});

然后,在 Parse 的 'Jobs' 选项卡中,您可以设置一个间隔运行的作业,引用 'ExpirationCheck' 的这个新作业。

或者,如果您愿意,可以完全删除数据,但我更喜欢有一个切换字段。