问题标签 [ltree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
37 浏览

ruby-on-rails - 如何过滤多个记录并仅从 postgres ltree 结构中获取最外层的记录?

我有一个ltree结构(Postgres ltree 扩展)排列的数据库记录。

我想将这些项目过滤到当前选择的最外层祖先。

测试用例:

我已经像这样在Ruby中实现了这个。

我通过递归消除了后代作为重复项。我很确定有一种 SQL 方法可以做到这一点,这将是首选的解决方案,因为它会触发 n+1 个查询。理想情况下,我会将此函数添加为Item模型的命名范围。

请问有什么指点吗?

0 投票
3 回答
295 浏览

postgresql - 是否可以创建一个包含 ltree 字段的整个路径的唯一约束?

我在 Postgres 中使用 ltree 扩展来管理树的路径。我想确保名称字段对于树上的任何给定路径都是唯一的。我可以使用约束来完成此操作,还是必须将其构建到查询中?

如果我必须将它构建到查询中,如果我使用 READ COMMITTED,这是否可能存在竞争条件?

0 投票
1 回答
225 浏览

postgresql - 如何更改 PostgreSQL 中 ltree 路径的路径分隔符?

PostgreSQL 中 ltree 的路径分隔符是 '.',因此查询中的路径看起来像 root.child.grand-child.*。但我想用它来存储 CRN 格式的路径,其中分隔符是“:”,或者其他一些分隔符。有没有办法在 PostgreSQL 中做到这一点?

0 投票
2 回答
386 浏览

database - Postgres 中的 LTREE 祖先查询未按预期工作

我有一个带有一LTREE列的表,数据如下所述。

假设我想找到标记为 的节点的所有祖先GHI。我正在使用的查询是

但是,这仅返回最后一行,而我想要所有三行。我究竟做错了什么?

0 投票
1 回答
406 浏览

java - ltree postgres type using spring data jpa -- 在 postgres 中定义函数和强制转换后出现语法错误

尝试编写包含 ltree 类型值的实体时,出现以下错误:

谷歌搜索那个错误让我在光滑的 Macaddr/Inet 类型的 postgres

Craig Ringer 那里的答案让我走了,虽然创建一个演员文本 - > ltree 没有用,所以我创建了一个演员 varchar - > ltree 如下

这让我克服了最初的错误,但是现在当我尝试使用 Spring Boot Starter Data JPA 从 Java 插入 ltree 值时,我得到一个长堆栈跟踪,其结尾如下:

我是 postgres 的新手,所以我通过修改我找到的答案中给出的函数来创建上面的函数,但现在我被卡住了。我需要帮助确定什么是语法错误以及如何修复它。

0 投票
1 回答
710 浏览

node.js - 将 Sequelize/ORM 与 LTREE 和 HSTORE 等 Postgres 扩展类型一起使用

我有一个使用 Node.JS & Express & Sequelize & PostgreSQL 的现有应用程序,现在出现了需要使用 PostgreSQL 扩展类型的新要求,例如ltree处理树数据模型和hstore记录的各种键/值属性。

所以问题是我仍然可以使用 Sequelize 来处理表创建,并使用本机查询来处理指定的扩展类型吗?

0 投票
1 回答
191 浏览

sql - Postgres 递归 LTREE 查找

我有以下两个代表嵌套文件夹层次结构的表

表“文件夹”包含基本文件夹信息

表“folder_tree”包含层次结构,使用 LTREE 类型的文件夹 ID 和列路径。

当给定结构数组时,我正在寻找验证是否存在确切的文件夹结构,例如如何按顺序验证 ['Top'、'Science'、'Astronomy'、'Astrophysics']。

我相信递归查询可以工作,它首先查看根文件夹“Top”,然后向下工作到 Astrophysics,确认每个文件夹都存在。

这可以通过递归查询来实现吗?还是类似的?

我知道 folder_tree 的路径可能包含完全像 Top.Science.etc 的名称,但在这种情况下,文件夹名称包含 LTREE 中不允许的空格和符号。

0 投票
1 回答
309 浏览

postgresql - Postgres ltree has-a-child 查询

我有以下表格:

我想返回用户有权查看的所有行,如果用户有权访问该项目或其祖先之一,则他有权访问该项目。例如:

根据以上数据,用户对项目(b、c、d)有权限。

我想创建一个连接上述表的查询并返回用户有权访问的所有项目,read预期结果是:

有一种有效的方法来搜索是否ltree包含其他ltree?或者如果ltree是另一个条目的孩子?*.a.*类似在lquery列之间但在列之间的东西。

我尝试使用<@/@>,但它们仅适用于检查根/项目:

0 投票
1 回答
1030 浏览

postgresql - 我们可以使用 PostgreSQL ltree 表示 DAG(有向无环图)吗?

我想将分层数据存储在 PostgreSQL 数据库中。我找到了 ltree 扩展,但它用于存储树结构数据,即只能有一个父节点。有什么办法可以调整它来存储多个父节点?

0 投票
2 回答
345 浏览

java - 带有 Postgres ltree 扩展的 Spring JPA (~ '*.)

获取时不工作

在本机 SQL 中工作,即
SELECT * FROM my_class WHERE path ~ '*.a.b.*{1}';