2016-12-23 2 views
0

다음 Meteor 메소드를 시도했지만 작동하지 않는 것 같습니다. 내 DB를 확인할 때 업데이트 된 정보를 찾을 수 없기 때문입니다.Meteor Method에서 MongoDB가 작동하지 않는 이유는 무엇입니까?

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를 버전 그것은 수집 후크 (https://github.com/matb33/meteor-collection-hooks가) 여기에 사용되는 것으로 나타났다 3.2.6

+0

http://docs.meteor.com/api/collections.html#selectors는 업데이트 작업에서 첫 번째 매개 변수로 문자열 또는 객체 ID를 사용할 수있는 이유를 설명합니다. 간단히 말하면 :이 선택자는 _id 필드의 해당 값을 가진 문서를 찾습니다. – derek

+1

'update'에 전달할 세번째 인자 ('selector ...')는 무엇입니까? 이드가 정확한지 확인 했니? – MasterAM

+0

예,'selector :'비트는 아무 것도하지 않습니다. –

답변

0

입니다. "Employees.update"가 실제로 발생하기 전에 수행 할 작업을 확인하는 Employees.before.update 메소드가 있습니다.