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 に答える