从客户端插入时,在Meteor服务器端丰富Mongo文档?

时间:2012-12-16 01:11:17

标签: mongodb meteor

我在文档中找不到任何内容,但是如果我遗漏了某些内容,Meteor中是否有任何方法可以在将文件发送到Mongo之前从服务器上的客户端丰富文档insert

用例是处理设置时间戳和其他(仅限服务器端用途)字段,而不必将它们设置为客户端文档的一部分。

显而易见的方法是仅从服务器端使用Meteor.call('addMyNewRecord', publicFields)然后insert,但我非常喜欢在客户端使用minimongo api,我希望避免{ {1}}要求。我知道在CouchDB中你可以在他们的call处理程序中做一些基本的修改,但似乎找不到类似于Meteor / Mongo的东西。

1 个答案:

答案 0 :(得分:2)

我终于找到了a nice approach这样做,同时仍然在客户端使用了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政策。