2017-01-18 3 views
0

나는 mysql과 함께 sailsjs를 사용하고 있으며 주문을하면 shopify webhook에서 데이터를 저장하는데 사용한다. 그것은 json 객체를 반환하고, 속성 중 하나는 고객 객체입니다.이 객체는 주 주문 테이블과 관련된 다른 테이블에 저장됩니다. 중복 된 고객이 없도록 고객 모델에서 findOrCreate를 사용하고 있습니다.Sailsjs findOrCreate는 레코드가 있는지 찾기 위해 어떤 속성을 사용합니까?

water 라인은 특정 속성을 사용하여 레코드가 이미 존재하는지 확인할 수 있습니까? 고객 객체 (shopify에서)는 ID를 가지고 있지만, 다른 주문에 대해 주어진 고객에 대해 동일하게 될지 여부를 명확히하지 않습니다. 또한 고객이 다른 지불 방법을 설정하면 청구서 수신 주소 등이 흘수선으로 새 레코드를 만들 수 있습니까?

요약하면 customer_email 속성을 사용하여 레코드가 있는지 여부를 확인하려면 waterline이 필요합니다. 이것이 가능한가? 미안하다. 내가 입력 할 때 이것을 통해 생각하고 있습니다.

답변

1

findOrCreate은 2 개의 매개 변수와 콜백을 사용합니다. 고유 한 식별 키를 사용하여 레코드가 존재하는지 먼저 확인해야합니다.

예.

var findCriteria = { id: 1, customer_email: '[email protected]' }; 
var recordToCreate = { id: 1, customer_email: '[email protected]', name: 'ABC' }; 
Model.findOrCreate(findCriteria, recordToCreate, console.log); 
첫번째 파라미터 레코드의 존재

findOrCreate

검사. 을 찾을 수 없으면 두 번째 매개 변수의 레코드가 만들어집니다. 매개 변수가 전달되지 않으면 존재하는 첫 번째 레코드를 반환합니다. 레코드가 제공되지 않으면 기준과 일치하는 레코드를 찾거나 해당 개체를 찾을 수없는 경우 레코드를 만듭니다. 예 : Model.findOrCreate(findCriteria , recordToCreate , [callback])

+0

감사! 문서는 그렇게 명확하지 않았습니다. 그것은 'criteria'라고 말했고 모델 속성을 언급하고 있다는 것을 깨닫지 못했습니다. – hamncheez