2015-06-27 65 views
1

我有以下對象層次結構:+的NodeJS :: sequelize包括在需要假

  1. 用戶
  2. 父(hasOne)
  3. 孩子(的hasMany)

一旦我有一個用戶對象,即時嘗試加載相關聯的父對象,以及其子一些。以下工作:

user.getParent({ 
    include: [{ 
    model: Child 
    }] 
}).then(function(parent) { 
    var children = parent.children; 
}); 

,但如果我想有選擇地加載父母的孩子們的一些,像這樣:如果父母有一個或多個女兒

user.getParent({ 
    include: [{ 
    model: Child, 
    where: { gender: 'FEMALE' } 
    }] 
}).then(function(parent) { 
    var daughters = parent.daughters; 
}); 

,查詢工作,我獲取父母數據以及所有女兒的數據。 然而,如果父母只有兒子,返回的父對象是null ..

我想,如果父母有沒有女兒,父對象仍然應該children = nullchildren = []解決..

另外,如果我想在加載父項時簡單地加載一些子項,我該如何去做呢?

感謝

回答

1

它竟然是用我自己的代碼的問題.. sequelize無法加載一個模型,如果一個嵌套的包含有where條款沒有返回模型..以確保它不完全失敗,你可以在https://github.com/sequelize/sequelize/issues/4019

where條款..這使得sequelize返回一個空數組,而不是完全失敗的負荷沿設置 required: false條款..

更多信息