node.js - Sequelize 关系为空

标签 node.js sequelize.js

我对 Sequelize 有疑问。这是我想要做的:

return pointsTransaction.findAndCountAll({
    where:{
        user_id: userId
    },
    limit: opts.limit,
    offset: opts.offset,
    include:[{
        model:sequelize.models.pointsPendingtransaction
    }]
});

生成的查询如下所示:

SELECT "pointsTransaction".*,
"pointsPendingtransactions"."transaction_ptr_id" AS "pointsPendingtransactions.transactionPtrId",
"pointsPendingtransactions"."is_active" AS "pointsPendingtransactions.isActive",
"pointsPendingtransactions"."transaction_id" AS "pointsPendingtransactions.transaction_id" 
FROM (
SELECT "pointsTransaction"."id",
"pointsTransaction"."date_time" AS "dateTime",
"pointsTransaction"."details",
"pointsTransaction"."points",
"pointsTransaction"."user_id" 
FROM "points_transaction" AS "pointsTransaction" 
WHERE "pointsTransaction"."user_id" = 10002 LIMIT 1000
) AS "pointsTransaction" 
LEFT OUTER JOIN "points_pendingtransaction" AS "pointsPendingtransactions" 
ON "pointsTransaction"."id" = "pointsPendingtransactions"."transaction_id"

因此,在 SQL 中,我只需在查询末尾添加该行即可使其正常工作:WHERE "pointsPendingtransactions"."transaction_id"IS null

所以我的问题是,我怎样才能用 sequelize 做到这一点?我尝试了许多不同的方法,但没有一种奏效......

最佳答案

如果您使用的是 Sequelize.Op 中的 Sequelize 符号运算符,那么 ...

return pointsTransaction.findAndCountAll({
    where:{
        user_id: userId
    },
    limit: opts.limit,
    offset: opts.offset,
    include:[{
        model:sequelize.models.pointsPendingtransaction,
        where: {
            transaction_id: {
              // "$eq" changes to "[Op.eq]"
              [Op.eq]: null
            }
        }
    }]
});

关于node.js - Sequelize 关系为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32819524/

相关文章:

mysql - 纯查询 Sequelize

node.js - Mongoose 输出的未知时间戳格式

javascript - Grunt - 连接多个 JS 文件并观察变化

regex - 如何在 Express.js 中创建 "does not begin with..."正则表达式?

mysql - Sequelize 上的热切加载关联

node.js - Sequelize 关联的某些设置不起作用

node.js - sequelize.js使用webpack时找不到pg依赖

javascript - 删除符合某些条件的键

javascript - 每 2 分钟运行一次的 Nodejs 函数会随着时间的推移而丢失

node.js - typescript 无法识别 .sequelizerc 文件