sequelize postgres 将 fn 'date' 与 jsonb 值结合起来

guy*_*abi 5 postgresql sequelize.js jsonb

我需要MM/DD/YYYY使用sequelize 将jsonb 列上的一个格式字符串与postgres 中的另一个格式字符串进行比较。

在常规专栏上我会做类似的事情

sequelize.where(sequelize.fn('date', sequelize.col('created_at'), '>=', moment().subtract(1, 'days').format('MM/DD/YYY'))),
Run Code Online (Sandbox Code Playgroud)

但是一旦该值位于 JSONB 中,我似乎找不到引用它的方法。

我尝试了多种变体:

sequelize.col("data ->> 'created_at'")

sequeliez.json("data.created_at")
Run Code Online (Sandbox Code Playgroud)

ETC...

实施这个的正确方法是什么?

guy*_*abi 7

我最终找到的一种方法是使用literal

sequelize.where(sequelize.fn('date', sequelize.literal(`data ->> 'created_at'`)), '>=', moment().subtract(1, 'days').format('MM/DD/YYY')))
Run Code Online (Sandbox Code Playgroud)

这对我有用。