확인

2014-11-07 3 views
0

I 오전 SailsJS에 새로운 응용 프로그램을 위해 그것을 사용하고 Project 모델
프로젝트 모델 삭제하는 동안 쿼리 몇 가지 문제에 직면 :확인

name: { 
     type: 'string', 
     required: true 
     }, 
deletedAt: { 
      type: 'datetime' 
      }, 
deletedBy: { 
     model: 'User', 
    } 

사용자 모델 :

를 프로젝트를 만드는 방법에 대한
name: { 
     type: 'string', 
     required: true 
     }, 
email: { 
     type: 'string', 
     required: true 
     } 

는 돛을 자동으로 createdAt 및 updatedAt에 대한 데이터를 채우고 난
012 프로젝트 Name에 대한 데이터를 작성하고프로젝트를 삭제할 때 soft-delete를 수행해야합니다. 여기서는 deletedAt 값과 deletedBy 값을 설정합니다.
모든 프로젝트 목록을 가져올 때 삭제 된 프로젝트를 가져 오면 안됩니다. 다음과 같이

Project.find(function (err, projList) { 
.. 
} 

다음 각 프로젝트에 대한 검사를 수행합니다 :

if (project.hasOwnProperty('deletedBy') && project.deletedBy != null) { 
    //Dont include this in list 
    } 

내가 수동으로 확인하는 대신, 어떤 방법이 내가 생각
한 가지 방법은 쿼리를 사용하여 모든 프로젝트를 얻을 수 있었다 삭제 된 프로젝트의 경우 쿼리를 사용하여 완료 할 수 있습니까? 즉 모든 삭제 된 프로젝트를 생략합니다.
미리 감사드립니다.

+0

는 질문이 완료? 여기에 사용자 모델을 나열하지만 사용자 모델에 대한 질문은하지 않습니다. – Meeker

답변

1
Project 
    .find() 
    .where({deletedAt : null}) 
    .exec(function(err, projectList){ 
.. 
}); 

당신이 defaultsTo로 설정 deletedAt 할 수 있습니다 DB를/모델에 따라 : 널 (null)

name: { 
    type: 'string', 
    required: true 
}, 
deletedAt: { 
    type: 'datetime', 
    defaultsTo: null, 
}, 
deletedBy: { 
    model: 'User', 
}