Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在关系为空的情况下进行续集_Node.js_Sequelize.js - Fatal编程技术网

Node.js 在关系为空的情况下进行续集

Node.js 在关系为空的情况下进行续集,node.js,sequelize.js,Node.js,Sequelize.js,我对sequelize有意见。以下是我想做的: return pointsTransaction.findAndCountAll({ where:{ user_id: userId }, limit: opts.limit, offset: opts.offset, include:[{ model:sequelize.models.pointsPendingtransaction }] }); 生成的查询如下所示

我对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中,我只需要在查询的末尾添加这一行就可以了:
其中“pointsPendingtransactions”。“transaction_id”为null

所以我的问题是,我如何用sequelize做到这一点?我尝试了许多不同的方法,但没有人奏效…

尝试下一步

其中:{
交易编号:{
$eq:null
}
}
生成的
为空


返回点stransaction.findAndCountAll({
其中:{
用户id:userId
},
限制:opts.limit,
偏移量:选择偏移量,
包括:[{
模型:sequelize.models.pointsPendingtransaction,
其中:{
交易编号:{
$eq:null
}
}
}]
});

如果使用Sequelize.Op中Sequelize的符号运算符,则

返回点stransaction.findAndCountAll({
其中:{
用户id:userId
},
限制:opts.limit,
偏移量:选择偏移量,
包括:[{
模型:sequelize.models.pointsPendingtransaction,
其中:{
交易编号:{
//“$eq”更改为“[Op.eq]”
[Op.eq]:空
}
}
}]
});

类似于:include:[{model:sequelize.models.pointsPendingtransaction,其中:{transaction\u id:null}}]应该可以工作,尽管我自己没有尝试过,但我尝试过,也尝试过一些基于计数的方法,但没有任何效果。我怀疑是“findAndCountAll”引起的错误当你尝试Molda的建议时会出现什么错误?我知道已经很晚了,但是你可以在这里检查我的答案。所有这一切都是在连接上附加了一个条件,它不符合他想要的。我自己试过了。在左外部联接之后需要where子句,但在外部where子句中放入一个条件会将其添加到此节中,其中“pointsTransaction”。“user_id”=10002 LIMIT 1000