node.js - 使用 Where 和 Include 失败的 Sequelize 查询

标签 node.js sequelize.js

尝试查询以返回汽车和相关照片。这有效:

Vehicle.findAll({
        include: [db.photos]
    })
我得到如下输出:
{
    "id": 69,
    "make": "Ford",
    "model": "Fiesta",
    "photos": [
        {
            "id": 10,
            "photoUrl": "29_1.jpg",
            "vehicleId": 69
        },
        {
            "id": 11,
            "photoUrl": "29_2.jpg",
            "vehicleId": 69
        }
    ]
},
但这不会,只返回汽车数据而没有照片:
Vehicle.findAll({
        where: { 
            make: { [Op.like]: '%' + make + '%' },
            model: { [Op.like]: '%' + model + '%' }
        }
    },
    {
        include: [db.photos]
    })
我究竟做错了什么?

最佳答案

您没有正确使用 Model.findAll()Model.findAll() 的签名是
public static async findAll(options: object): Promise<Array>
如您所见,它只接受一个参数 options
尝试:

Vehicle.findAll({
  where: {
    make: { [Op.like]: '%' + make + '%' },
    model: { [Op.like]: '%' + model + '%' },
  },
  include: [db.photos],
});

关于node.js - 使用 Where 和 Include 失败的 Sequelize 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65238829/

相关文章:

sockets - Nodejs TCP套接字,结束时不包含remoteAddress信息

node.js q 不等待延迟 promise 被解决

javascript - Sequelize findOne错误: TypeError indexOf undefined

node.js - 使用 Node 时,sequelize ERROR : this. lib.createConnection 不是函数

node.js - MongoDB:使用 $geoNear 并非所有结果都从查询返回

node.js - 如何让 sinon mock 在不同的调用上返回不同的对象?

javascript - 如何在 NodeJS 中获取操作系统用户名?

mysql - NodeJS/Sequelize/MySQL - 为什么需要 postgres 依赖项?

angularjs - 如何使用 where 子句在 sequelize 中搜索整数值

sequelize.js - 与sequ​​elize.js 的命名关联