根据键值对过滤存储在 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 索引,但不清楚我在做什么。
我应该如何查询数据,以便我可以在 Postgres 的 cart 中找到所有将裤子作为商品的用户列表?
另外,我是这个实现的新手并且渴望学习所以如果实现是通过 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
我的 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 索引,但不清楚我在做什么。
我应该如何查询数据,以便我可以在 Postgres 的 cart 中找到所有将裤子作为商品的用户列表?
另外,我是这个实现的新手并且渴望学习所以如果实现是通过 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