2

我已经使用UMFAQ(发音为um- fack )成功实现了“创建”时间戳,但我无法让“更新”时间戳工作(UMFAQ 提到但没有提供代码示例)。

这是我的代码:

Posts.deny({
    insert: function (userId, doc) {
        doc.created = new Date(); // timestamp
        return false;
    },
    update: function (userId, doc, fieldNames, modifier) {
        doc.updated = new Date(); // timestamp
        return false;
    }
})

当我通过 Chrome 控制台将一个对象插入到集合中时,我会得到一个“已创建”时间戳。但是,当我更新该记录(使用 $set)时,我没有得到“更新”字段。

4

1 回答 1

4

您需要更改modifier更新:

Posts.deny({
    ....
    update: function (userId, doc, fieldNames, modifier) {
        if(modifier.$set) {
            modifier.$set.updated = new Date();
        } 
        return false;
    }
});

检查是否$set存在以防止出现错误,以防客户端在不使用$set.

于 2013-05-22T20:34:42.090 回答