仅当 active = true 时 Sequelize ORM 包含模型

Sequelize ORM include model only if active = true

如何找到 ID 为 1 的所有订单并仅在该商品的 active = true 时包含该商品?否则会出现空数组...

Order.findAll({
    where: { id: 1 },
    include: [
      { model: Item, where: sequelize.and({'active' : true }) }
    ]
}).then(function(order) {
    callback(null, order);
});

这只显示了一些订单,其中一些商品的 active = true。我想显示所有带有 id: 1 的订单和作为子数组的项目...

来自Sequelize Tutorial

Adding a where clause to the include automatically makes it required

解决方法是这样的:

Order.findAll({
    where: { id: 1 },
    include: [
      { model: Item, 
        where: sequelize.and({'active' : true }),
        required: false 
      }
    ]
}).then(function(order) {
    callback(null, order);
});