3

我在文档中找不到任何东西,但如果我遗漏了什么,Meteor 有什么方法可以insert在发送到 Mongo 之前丰富服务器上客户端的文档。

这样做的用例是处理诸如设置时间戳和其他(仅供服务器端使用)字段之类的事情,而不必将它们设置为客户端文档的一部分。

显而易见的方法是仅从服务器端使用,Meteor.call('addMyNewRecord', publicFields)insert我非常喜欢在客户端使用 minimongo api,我希望避免这种call要求。我知道在 CouchDB 中,您可以在其处理程序中进行一些基本修改,on-update但似乎无法为 Meteor/Mongo 找到任何类似的东西。

4

1 回答 1

2

我终于找到了一个很好的方法来做到这一点,同时仍然在客户端使用 minimongo 接口。

看来您可以拦截insert并丰富文档作为Deny策略的一部分,如下所示:

    myCollection.deny({
        insert: function(userId, doc) {
            doc.created = new Date().valueOf();
            doc.creator = userId;
            //other default fields
            return false;
        }
    });

我尝试使用update拒绝策略来添加modified字段,但这似乎并不相同。如上面链接的帖子中所述,这不适用于该Allow政策。

于 2012-12-18T15:29:50.003 回答