Meteor 重构流星更新片段
我有这段代码Meteor 重构流星更新片段,meteor,Meteor,我有这段代码 Requestor.update({ _id: theid }, {$set: { "reqestmadebyid": doc.reqestmadebyid, "requestschoolid": doc.requestschoolid, "requestmadebynames": doc.requestmadebynames, "requestmadeon": doc.request
Requestor.update({ _id: theid }, {$set: {
"reqestmadebyid": doc.reqestmadebyid,
"requestschoolid": doc.requestschoolid,
"requestmadebynames": doc.requestmadebynames,
"requestmadeon": doc.requestmadeon,
"requesttype": doc.requesttype,
"requestdescription": doc.requestdescription,
"requestparameter1": doc.requestparameter1,
"requestparameter2" : doc.requestparameter2,
"requestparameter3" : doc.requestparameter3,
"requestparameter4" : doc.requestparameter4,
"requestparameter5" : doc.requestparameter5,
"requestparameter6" : doc.requestparameter6,
"requestparameter7" : doc.requestparameter7,
"requeststatus" : doc.requeststatus,
"requestdenialexplanation" : doc.requestdenialexplanation
}
});
我正在使用它更新表单。有没有一种方法可以像我们在插入时那样使它变小?不能说它变小了,但它更容易维护
var fields = [
'reqestmadebyid',
'requestschoolid',
'requestmadebynames',
'requestmadeon',
'requesttype',
'requestdescription',
'requestparameter1',
'requestparameter2',
'requestparameter3',
'requestparameter4',
'requestparameter5',
'requestparameter6',
'requestparameter7',
'requeststatus',
'requestdenialexplanation'
];
var updateSet = fields.reduce(function(data, field) {
return data[field] = doc[field];
}, {});
Requestor.update({ _id: theid }, {$set: updateSet});
使用lodash npm包的更紧凑示例:
var fields = [
'reqestmadebyid',
'requestschoolid',
'requestmadebynames',
'requestmadeon',
'requesttype',
'requestdescription',
'requestparameter1',
'requestparameter2',
'requestparameter3',
'requestparameter4',
'requestparameter5',
'requestparameter6',
'requestparameter7',
'requeststatus',
'requestdenialexplanation'
];
Requestor.update({ _id: theid }, {$set: _.pick(doc, fields)});
这是一些聪明的代码。我默默地希望meteor有一种缩短它的方法。让你微笑的东西,大家都欢呼这个明显的@LeQs队长如果你想更新
doc
对象包含的每个属性,你只需编写Requestor.update({u id:theid},{$set:doc})
@LeQs,或者,如果您几乎需要所有属性,您可以编写(使用lodash):var省略=['a','b'];update({u id:theid},{$set:{.omit(doc,省略)})代码>。