ruby-on-rails - Rails:Postgres JSONB“之间”查询
问题描述
我正在使用 Rails 5 + Postgres。
我有一个 Postgres JSONB 列data
,其名称如下所示:
{username: 'McGruff', timestamp: 123456789}
我想查询两个时间戳之间的数据,以获取所有时间戳都在某个范围内(例如,过去 24 小时)的记录子集。
使用下面的评论,答案是:
Model.where("(data->'timestamp')::int BETWEEN ? AND ?", start, end)
谢谢您的帮助!
解决方案
通过将&输入作为字符串提供来使用where子句。作为jsonb列 中以字符串格式存储的数据。start
end
有点像下面:
Model.where((data->>'timestamp')::int between ? and ?, start, end)
推荐阅读
- javascript - GTM 自定义 Javascript 未定义变量
- java - CodeHS:如何在另一个类的 toString 中多次使用一个类的 toString 方法
- excel - VBA - 如何使用 For 循环和 IF 语句使代码更高效?
- java - 如何在 Spring 中复制 MultipartFile?
- python - 熊猫“重新装箱”数据框
- java - Apache spark Row getAs[String]:java.lang.Byte 无法转换为 java.lang.String
- java - 在 GKE 上使用我的应用程序部署 OPA 后容器之间的通信问题
- javascript - 如何隐藏 Google API 密钥并仍然使用它
- apache-camel - 我在 apache camel 中处理 onException(真)的设计有问题
- android - 确定可用的生物识别硬件类型 Android