使用Arbor 项目地址
什么是CTEs?
使用CTEs实现Ecto的邻接列表与树的遍历.
Arbor
使用parent_ID
和CTEs
创建简单的树状结构.
defmodule Comment do use Ecto.Schema # See config options below use Arbor.Tree,foreign_key_type: :binary_ID schema "comments" do fIEld :body,:string belongs_to :parent,Arbor.Comment timestamps end end获取根级节点
roots = Comment.roots |> Repo.all获取兄弟节点
siblings = my_comment |> Comment.siblings |> Comment.order_by_popularity |> Repo.all获取祖先节点
获取当前节点的先辈节点,从下网上返回所有父辈节点. 主要用于显示一个分类导航路径(类似网站的Breadcrumbs
面包屑功能)
descendants = my_comment |> Comment.ancestors |> Comment.order_by_inserted_at |> Repo.all获取后代节点
获取当前节点的所有后代节点,返回后代节点列表
descendants = my_comment |> Comment.descendants |> Comment.order_by_inserted_at |> Repo.all获取子节点
获取当前节点的所有子节点
children = my_comment |> Comment.children |> Repo.all获取父节点
获取当前节点的父节点
parent = my_comment |> Comment.parent |> Repo.first选项
table_name
设置在CTEs中要使用的表名称
tree_name
设置CTE的名称
primary_key
默认来自于Ecto的@primary_key
模块属性
primary_key_type
默认来自于Ecto的@primary_key
模块属性
foreign_key
默认为parent_ID
foreign_key_type
默认来自于Ecto的@primary_key
模块属性
orphan_strategy
默认为 :nothing
,当前未实现
以上是内存溢出为你收集整理的Elixir Ecto: 使用Arbor在Postgresql中实现邻接列表与树的遍历全部内容,希望文章能够帮你解决Elixir Ecto: 使用Arbor在Postgresql中实现邻接列表与树的遍历所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)