如何 Sequelize "where" 访问 table 和列
how to Sequelize "where" accessing table and column
我正在尝试移植一个使用过 sequelize 3.30.4 的应用程序并且我正在更新到 6.13,我假设有些事情已经改变,因为我不能在 where 子句中使用字符串文字,等等调试器告诉我。
就是说,我已经进行了一些谷歌搜索并找到了一些确定有意义的基本示例,但我不完全确定如何将此字符串转换为 findAndCountAll 可接受的格式。
我曾尝试过这样的事情,认为它至少可以为我指明正确的方向,但事实并非如此。
let attributes = ['id', 'name', 'locationId'];
let where = undefined;
let order = [['name', 'ASC']];
where = {
classroom: {
locationId: request.query.locationId
}
}
这是曾经有效但不再有效的线路。
where = `"classroom"."locationId" = ${request.query.locationId}`;
const classrooms = await model.classroom.findAndCountAll(_.assign({},
requestHelper.computePaginationObject(request.query.limit, request.query.page), {
attributes,
where: where ? [where] : undefined,
order
}));
我该如何将其移植为正确的格式?
尝试这样的事情:
let where = {}
if (<some condition>) {
where = {
locationId: request.query.locationId
}
}
const classrooms = await model.classroom.findAndCountAll(_.assign({},
requestHelper.computePaginationObject(request.query.limit, request.query.page), {
attributes,
where: where,
order
}));
即使 ANATOLY 的第一条评论效果很好,你也可以尝试一下:
const where = <some condition> ? {locationId: request.query.locationId} :{};
const classrooms = await model.classroom.findAndCountAll(_.assign({},
requestHelper.computePaginationObject(request.query.limit, request.query.page), {
attributes,
where,
order
}));
我正在尝试移植一个使用过 sequelize 3.30.4 的应用程序并且我正在更新到 6.13,我假设有些事情已经改变,因为我不能在 where 子句中使用字符串文字,等等调试器告诉我。
就是说,我已经进行了一些谷歌搜索并找到了一些确定有意义的基本示例,但我不完全确定如何将此字符串转换为 findAndCountAll 可接受的格式。
我曾尝试过这样的事情,认为它至少可以为我指明正确的方向,但事实并非如此。
let attributes = ['id', 'name', 'locationId'];
let where = undefined;
let order = [['name', 'ASC']];
where = {
classroom: {
locationId: request.query.locationId
}
}
这是曾经有效但不再有效的线路。
where = `"classroom"."locationId" = ${request.query.locationId}`;
const classrooms = await model.classroom.findAndCountAll(_.assign({},
requestHelper.computePaginationObject(request.query.limit, request.query.page), {
attributes,
where: where ? [where] : undefined,
order
}));
我该如何将其移植为正确的格式?
尝试这样的事情:
let where = {}
if (<some condition>) {
where = {
locationId: request.query.locationId
}
}
const classrooms = await model.classroom.findAndCountAll(_.assign({},
requestHelper.computePaginationObject(request.query.limit, request.query.page), {
attributes,
where: where,
order
}));
即使 ANATOLY 的第一条评论效果很好,你也可以尝试一下:
const where = <some condition> ? {locationId: request.query.locationId} :{};
const classrooms = await model.classroom.findAndCountAll(_.assign({},
requestHelper.computePaginationObject(request.query.limit, request.query.page), {
attributes,
where,
order
}));