通过在 JSONB 列上应用过滤器来查询 postgresql 中的数据

Querying data in postgresql by applying filter on a JSONB column

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

示例过滤器是:

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

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

单个查询可能如下所示:

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.