我在文档中找不到任何内容,但是如果我遗漏了某些内容,Meteor中是否有任何方法可以在将文件发送到Mongo之前从服务器上的客户端丰富文档insert
用例是处理设置时间戳和其他(仅限服务器端用途)字段,而不必将它们设置为客户端文档的一部分。
显而易见的方法是仅从服务器端使用Meteor.call('addMyNewRecord', publicFields)
然后insert
,但我非常喜欢在客户端使用minimongo api,我希望避免{ {1}}要求。我知道在CouchDB中你可以在他们的call
处理程序中做一些基本的修改,但似乎找不到类似于Meteor / Mongo的东西。
答案 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
政策。