我正在尝试更新集合中文档中的几个不同字段,并且似乎遇到了一些麻烦。我似乎无法访问我想要设置的任何特定属性(主题,标准,价格)。有人能帮忙吗?到目前为止,这是我的代码,newAttributes似乎没有在那里。
我已确认doc._id正确填充。
Template.AppAdmin.events({
'click #editApp': function() {
let newAttributes = {};
let subject = $('#subject').val();
let standard = $('#standard').val();
let price = $('#price').val();
console.log(subject);
console.log(standard);
console.log(price);
newAttributes = { subject: subject, standard: standard, price: price };
var doc = Session.get('appId');
console.log(doc);
console.log(newAttributes);
Apps.update(doc._id, { $set: { newAttributes }});
console.log('app has been updated!');
}
});
谢谢。
更新 当然我弄清楚了,我没有正确地通过ID抓取文档......
这有效:
Apps.update({_id: doc}, { $set: newAttributes });
答案 0 :(得分:1)
您需要删除newAttributes周围的大括号,因为newAttributes已经是一个对象。所以你的更新代码就像
Apps.update(doc._id, { $set: newAttributes });
或
Apps.update({'_id':doc._id}, { $set: newAttributes });