我的表中有一个新创建的列,我需要在我的一个服务器控制器中查询。此列中的此数据将为JSON类型,并命名为“meta”。完成后它将看起来像这样
{
"audit": {"date": 1465311598315, "user": 20191932891}
}
目前,此表中的所有条目都具有空值JSON列,其值为NULL。
在我的一个服务器控制器中,我需要获取meta为null或meta.audit.date超过90天的所有条目。我的查询看起来像这样
db.Question.findAll({
where: {
status: 'active',
PassageId: {
$eq: null
},
meta: {
audit: {
date: {
$or: {
$lte: threeMonthsAgo,
$eq: null
}
}
}
}
}
});
在这种情况下,三个月前是三个月前的数字。
没有返回任何结果,我在控制台中收到此错误:
Unhandled rejection SequelizeDatabaseError: operator does not exist: text <= bigint
答案 0 :(得分:2)
原来我没有正确使用$或运算符
db.Question.findAll({
where: {
status: 'active',
PassageId: {
$eq: null
},
{
$or: [{
'meta.audit.date': {
$eq: null
}
}, {
'meta.audit.date': {
$lte: threeMonthsAgo
}
}]
}
}
});