通过在JSONB列

时间:2018-04-30 06:51:34

标签: postgresql npgsql cockroachdb

我有一个有2列的表; ID (int) and EntityData (JSON)。我在C#中以Dictionary的形式创建了一个过滤器对象。我想获取满足我的过滤器中键值对数据的所有行。

示例过滤器是:

{
    "Name": "mike",
    "Location": "Lagos"
}

这应该会获取EntityData名称为mike且Location为Lagos的所有行。

1 个答案:

答案 0 :(得分:0)

单个查询可能如下所示:

SELECT * FROM table WHERE json_field->>'Name' = 'mike' AND json_field->>'Location' = 'Lagos'

您可以使用参数占位符('mike''Lagos')替换@name@location,并对字典的所有条目重复运行此查询。为了获得最佳性能,您还可以预先准备命令,甚至可以通过将查询多次连接到同一CommandText来在一个命令中批量处理所有查询。

See here for the full PG docs on JSON operators