我正在尝试以下Meteor方法,但它似乎无法正常工作。因为当我检查我的数据库时,我找不到更新的信息。
const Employees = new Mongo.Collection("Employees");
Employees.attachSchema(Schemas.Employee, { selector: { type: "fullTime" } });
Employees.attachSchema(Schemas.EmployeeVariant, { selector: { type: "partTime" } });
Meteor.methods({
"employees/updateTasks": function (employeeId, taskId) {
this.unblock();
//the following is printed.
console.log("employeeId: "+employeeId+" taskId:"+ taskId);
return Employees.update({_id: employeeId},
{$push: {tasks: taskId}},
{selector: {type: "fullTime"}});
}
});
这里有什么明显的错误吗?
另一个问题是:
有时我会看到人们以这种方式使用它:
Employees.update(employeeId, // not {_id:employeeId}
{$push: {tasks: taskId}},
{selector: {type: "fullTime"}});
这里使用的是:" 5.3 Add event handlers for Task buttons"
为什么会这样?
我的Mongodb版本是3.2.6
答案 0 :(得分:0)
事实证明,这里使用了集合挂钩(https://github.com/matb33/meteor-collection-hooks)。在“Employees.update”真正发生之前,有一个Employees.before.update方法来检查要做什么。