Path Traversals

Path traversals map traversal steps to a location to use in the event that a previous location must be revisited.

This path traversal starts at an ingredient, traverses to a recipe, and eventually finds a book that contains the recipe with the ingredients specified.

g.V().has('ingredient', 'name',within('beef','carrots')).in('includes').as('Recipe').
	out().hasLabel('book').as('Book').
	select('Book','Recipe').
		by('name').by('name').path()

The output for this traversal lists each result:

==>[v[{~label=ingredient, member_id=2, community_id=1442590464}],
	v[{~label=recipe, member_id=2, community_id=473764096}],
	v[{~label=book, member_id=0, community_id=568859392}],
	{Book=The Art of French Cooking, Vol. 1, Recipe=Beef Bourguignon}]
==>[v[{~label=ingredient, member_id=1, community_id=684566272}],
	v[{~label=recipe, member_id=0, community_id=1462084224}],
	v[{~label=book, member_id=1, community_id=1620680576}],
	{Book=The Art of Simple Food: Notes, Lessons, and Recipes from a Delicious Revolution, Recipe=Carrot Soup}]

Another path traversal creates a tree that emanates from a vertex label, in this case a book.

g.V().hasLabel('book').in().tree().by('name').next()

The output for this traversal lists each result:

==>Simca's Cuisine: 100 Classic French Recipes for Every Occasion=
	{Patricia Simon={}, Simone Beck={}}
==>The Art of French Cooking, Vol. 1=
	{Simone Beck={}, Julia Child={}, Beef Bourguignon={}, Louisette Bertholie={}, Salade Nicoise={}}
==>The Art of Simple Food: Notes, Lessons, and Recipes from a Delicious Revolution=
	{Alice Waters={}, Kelsie Kerr={}, Roast Pork Loin={}, Carrot Soup={}, Fritz Streiff={}, Patricia Curtan={}}
==>The French Chef Cookbook=
	{Julia Child={}}

Each book lists the authors and recipes that are included in the book.

Another tree traversal discovers all the vertices that are on outgoing tree branch from a recipe.

g.V().hasLabel('recipe').out().tree().by('name').next()

The output for this traversal lists each result:

==>Roast Pork Loin=
	{red wine={}, pork loin={}, chicken broth={}, The Art of Simple Food: Notes, Lessons, and Recipes from a Delicious Revolution={}}
==>Spicy Meatloaf=
	{bacon={}, celery={}, pork sausage={}, onion={}, ground beef={}, green bell pepper={}}
==>Beef Bourguignon=
	{mashed garlic={}, butter={}, The Art of French Cooking, Vol. 1={}, onion={}, tomato paste={}, beef={}}
==>Carrot Soup=
	{butter={}, onion={}, chicken broth={}, carrots={}, The Art of Simple Food: Notes, Lessons, and Recipes from a Delicious Revolution={}, thyme={}}
==>Rataouille=
	{mashed garlic={}, yellow onion={}, olive oil={}, zucchini={}, eggplant={}}
==>Salade Nicoise=
	{tuna={}, The Art of French Cooking, Vol. 1={}, hard-boiled egg={}, olive oil={}, tomato={}, green beans={}}
==>Wild Mushroom Stroganoff=
	{mushrooms={}, yellow onion={}, egg noodles={}}
==>Oysters Rockefeller=
	{oyster={}, chervil={}, parsley={}, celery={}, fennel={}, shallots={}, Pernod={}}

Each recipe lists the ingredients for the recipe and the books that include the recipe.

Was this helpful?

Give Feedback

How can we improve the documentation?

© 2024 DataStax | Privacy policy | Terms of use

Apache, Apache Cassandra, Cassandra, Apache Tomcat, Tomcat, Apache Lucene, Apache Solr, Apache Hadoop, Hadoop, Apache Pulsar, Pulsar, Apache Spark, Spark, Apache TinkerPop, TinkerPop, Apache Kafka and Kafka are either registered trademarks or trademarks of the Apache Software Foundation or its subsidiaries in Canada, the United States and/or other countries. Kubernetes is the registered trademark of the Linux Foundation.

General Inquiries: +1 (650) 389-6000, info@datastax.com