我有以下对象层次结构:
- 用户
- parent (有一个)
- child (有很多)
一旦我有了一个用户对象,我就会尝试加载关联的父对象及其一些子对象。以下作品:
user.getParent({
include: [{
model: Child
}]
}).then(function(parent) {
var children = parent.children;
});
但是如果我想有选择地加载 parent 的 child 的一些,像这样:
user.getParent({
include: [{
model: Child,
where: { gender: 'FEMALE' }
}]
}).then(function(parent) {
var daughters = parent.daughters;
});
如果 parent 有一个或多个女儿,则查询有效,我得到 parent 数据以及所有女儿的数据。 但是,如果父对象只有儿子,返回的父对象是null
..
我希望如果 parent 没有女儿,父对象仍应使用 children = null
或 children = []
..
另外,如果我想在加载父项的同时简单地加载子项的数量,我该怎么做呢?
谢谢
最佳答案
事实证明这是我自己的代码的问题。如果嵌套包含的 where
子句不返回任何模型,sequelize 将无法加载模型。以确保它不会完全失败,你可以设置一个 required: false
子句和 where
子句。这使得 sequelize 返回一个空数组而不是完全失败加载。
关于node.js - nodejs + sequelize::include where required false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31091420/