我有一个数据库表列 (collection
),它的数据类型是text
我已经在collection
中插入了JSON数据
这是我的JSON数据
{"name":"test","age":"25","country":"xxx"}
但是现在我该如何查询这个 JSON 数据呢?是否有以下选项?
User.where(collection: :name) # Here name denotes test
我有一个数据库表列 (collection
),它的数据类型是text
我已经在collection
中插入了JSON数据
这是我的JSON数据
{"name":"test","age":"25","country":"xxx"}
User.where(collection: :name) # Here name denotes test
由于JSON是一个字符串,您只能使用SQLite/MySQL(或任何其他数据库)进行字符串比较。此外,请尝试将数据类型保持为二进制。
您可以执行:LIKE操作以查找存储的JSON字符串中的子字符串出现。
您正在进行的上述比较将无法正常工作,因为它仅用于在集合列中搜索名称,而您已在该列中存储了整个JSON字符串。
你可能想考虑使用JSON数据类型
https://github.com/diogob/activerecord-postgres-hstore
如果你使用的是Rails 4,你就不需要这个宝石了,但文档仍然适用。