2016-05-23 14 views
3

私は、以下のいずれかのレベルの子供をltreeで選択しようとしています。Elixirを使用してPostgres ltreeで直接子供を選択する

例えば、私がCar.Fordを持っていた場合、このクエリはCar.Ford.Fiesta、Car.Ford.Fusion、Car.Ford.Mustangなどのパスを持つすべての子を取得します。

ltreeを使用して、可能であれば具体的にElixirを使用してこのクエリを構築するにはどうすればよいですか?

今私は

from c in query, where: fragment("path <@ ?", c.path) 

を使用しています。しかし、それはそれでパスを持つすべてのエントリを返します。

+0

まあで始まるパスの下は何もマッチします、あなたは明らかつもり 'fragment'が、それはさておきを使用して終了している

'My.Example.*{1}' 

、私はあなたが'に飛び込むする必要があると思いますltreeのドキュメントとあなたが望むことをする方法を見つける - > http://www.postgresql.org/docs/current/static/ltree.html – JustMichael

答えて

1

これを実証しました。

Postgresのドキュメントでは、lquery内の{}が一致するラベルの数を制限していることを示しています。これは、実際に検索するレベルの数を制限することを開発者が証明しています。 1つのレベルMy.Example

関連する問題