0

我正在尝试以下 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 为任务按钮添加事件处理程序

为什么是这样?

我的MongoDB版本是3.2.6

4

1 回答 1

0

事实证明,这里使用了收集挂钩( https://github.com/matb33/meteor-collection-hooks )。有一个Employees.before.update 方法可以检查在“Employees.update”真正发生之前要做什么。

于 2016-12-24T05:25:45.797 回答