2014-10-07 2 views
0

이렇게하면 적절한 양의 레코드가 반환되지만 계정은 첫 번째 레코드에만 채워집니다. 쿼리가 생성하는 쿼리는 또한 올바른 것으로 모든 레코드에 대해 모든 관련 데이터를 반환합니다. populateAll()은 아무 효과가 없습니다. .exec.then을 바꿔도 아무런 효과가 없습니다.여러 레코드에서 일대일 연결 검색

또한 연관으로 표시되는 하나의 '계정'은 올바른 레코드조차 없습니다.

내가 잘못했거나 버그입니까?

pic

mail_items.find().populate('account').then(function(mail_items) { 
    return mail_items; 
}); 

자동 계정 모델의 ID를 생성하여 테이블을 연결하면 광산에서 일하고

module.exports = { 
    tableName : 'accounts', 

    attributes : { 
     account_id : { 
      type : 'int', 
      primaryKey : true, 
      unique : true 
     }, 

     name : 'string' 
    } 
}; 

mail_items.js

module.exports = { 
    tableName : 'mail_items', 

    attributes : { 
     mail_item_id : { 
      type : 'int', 
      primaryKey : true, 
      unique : true 
     }, 

     sender : 'string', 

     account : { 
      columnName : 'account_id', 
      type : 'int', 
      model : 'accounts' 
     } 

    } 
}; 

답변

0

을 accounts.js.

module.exports = { 
     name : 'string' 
    } 
}; 

mail_items.js

module.exports = { 
    //tableName : 'mail_items', 
    //table name exactly same to model name 
    attributes : { 
     mail_item_id : { 
      type : 'int', 
      primaryKey : true, 
      unique : true 
     }, 

     sender : 'string', 

     account : { 
      //columnName : 'account_id', 
      //type : 'int', 
      model : 'accounts' 
     } 

    } 
}; 
+0

그것은 확실히 일했다을 account.js. 분명히 각 테이블의 pk는 id 일 필요가 없습니다 ... 맞습니까? 그렇지 않다면 나는 함께 살 수 있습니다. – brian

+0

네, 그러나 돛은 자동 증가 속성으로 기본 키와 함께 'id'를 자동 생성합니다. – vusan

+0

채울 모델이없는 한 가지 이유는 mail_items에서 연결된 ID가있는 계정이 없을 수 있기 때문입니다. – vusan

관련 문제