在允许或拒绝方法中插入或更新之前,我需要向文档添加或删除字段。我曾假设转换函数将提供所需的功能。
流星文档状态
“一个可选的转换函数。在从 fetch 或 findOne 返回之前,以及在传递给观察、允许和拒绝的回调之前,将通过该函数传递文档。”
每当我尝试从允许或拒绝从函数转换和返回文档时,文档的转换版本不是插入到 mongodb 中的内容。我尝试通过 2 种策略进行转型。
策略一
var ts = new Date();
return _.extend(_.pick(doc, 'name', 'discounts', 'locations', 'url_map', 'client_updated_td', '_id'), { created_td:
ts, updated_td: ts, });
策略二
// Discountsroutings.fields is in /lib/Discountroutings.js
Discountsroutings.fields = ['_id', 'created_td', 'updated_td', 'client_updated_td', 'name', 'discounts', 'locations', 'url_map'];
// this is in /server/discountsroutings.js var ts = new Date();
doc.created_td = ts; doc.updated_td = ts; return _.each(doc,function(value, key, list){
if(Discountsroutings.fields.indexOf(key) == -1 ){
delete doc[key];
}
});
都没有奏效。尽管添加了字段,但在这两种情况下都没有删除字段。
有趣的是,我在插入允许和插入拒绝中尝试了相同的两种策略,只有策略 #2 有效。所以,现在我只是在拒绝插入/更新方法中使用策略#2 。工作正常,连接起来也不难。
我这样做正确吗?我想以正确的方式从收集服务器端添加或删除字段。