繁体   English   中英

基于键值对过滤存储在 Postgres 中的 JSON 数据

[英]Filtering the JSON data stored in Postgres based on key-value pairs

我在我的Postgres数据库中的列名cart下有一个 JSON 对象存储为JSONB 这是 2 个用户的购物车数据

"items": [
 {
   "name": "T-shirt",
   "price": 250,
   "item_id": 111,
   "quantity": 1
 },
 {
   "name": "Trousers",
   "price": 600,
   "item_id": 222,
   "quantity": 1
 }
]
}

&&&&

{
"items": [
 {
   "name": "Jeans",
   "price": 250,
   "item_id": 333,
   "quantity": 1
 },
 {
   "name": "Trousers",
   "price": 600,
   "item_id": 444,
   "quantity": 1
 }
]
}


此数据存储在列名cart下。 我尝试使用 Gin 索引,但不清楚我在做什么。 我应该如何查询数据,以便我可以在Postgres购物车中找到所有将裤子作为商品的用户列表? 另外,我是这个实现的新手,并且热衷于学习所以如果实现是通过Golang完成的,那将会很有帮助。
谢谢,普什卡·辛格

USING gin ((cart->'items') jsonb_path_ops);

SELECT * FROM order2 WHERE cart->'items' @> '[{"name":"Trousers"}]';

参考:

查询 JSON 类型内的数组元素

在 JSON 数组中查找元素的索引

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM