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

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

我的 Postgres 数据库中的列名下有一个 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
 }
]
}


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

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

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

参考文献:

Query for array elements inside JSON type

Index for finding an element in a JSON array