<!-- CANARY: REQ=REQ-DOCS-001; FEATURE="Docs"; ASPECT=Documentation; STATUS=TESTED; OWNER=docs; UPDATED=2026-01-15 --> <h2 id="tutorials" class="position-relative d-flex align-items-center group"> <span>Tutorials</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="tutorials" aria-haspopup="dialog" aria-label="Share link: Tutorials"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h2><div id="headingShareModal" class="heading-share-modal" role="dialog" aria-modal="true" aria-labelledby="headingShareTitle" hidden> <div class="hsm-dialog" role="document"> <div class="hsm-header"> <h2 id="headingShareTitle" class="h6 mb-0 fw-bold">Share this section</h2> <button type="button" class="hsm-close" aria-label="Close"> <i class="fa-solid fa-xmark"></i> </button> </div> <div class="hsm-body"> <label for="headingShareInput" class="form-label small text-muted mb-1 text-uppercase fw-bold" style="font-size: 0.7rem; letter-spacing: 0.5px;">Permalink</label> <div class="input-group mb-4 hsm-url-group"> <input id="headingShareInput" type="text" class="form-control font-monospace" readonly aria-readonly="true" style="font-size: 0.85rem;" /> <button class="btn btn-primary hsm-copy" type="button" aria-label="Copy" title="Copy"> <i class="fa-duotone fa-clipboard" aria-hidden="true"></i> </button> </div> <div class="small fw-bold mb-2 text-muted text-uppercase" style="font-size: 0.7rem; letter-spacing: 0.5px;">Share via</div> <div class="hsm-share-grid"> <a id="share-twitter" class="btn btn-outline-secondary w-100" target="_blank" rel="noopener noreferrer"> <i class="fa-brands fa-twitter me-2"></i>Twitter </a> <a id="share-linkedin" class="btn btn-outline-secondary w-100" target="_blank" rel="noopener noreferrer"> <i class="fa-brands fa-linkedin me-2"></i>LinkedIn </a> <a id="share-facebook" class="btn btn-outline-secondary w-100" target="_blank" rel="noopener noreferrer"> <i class="fa-brands fa-facebook me-2"></i>Facebook </a> </div> </div> </div> </div> <style> .heading-share-modal { position: fixed; inset: 0; display: flex; justify-content: center; align-items: center; background: rgba(0, 0, 0, 0.6); z-index: 1050; padding: 1rem; backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); } .heading-share-modal[hidden] { display: none !important; } .hsm-dialog { max-width: 420px; width: 100%; background: var(--bs-body-bg, #fff); color: var(--bs-body-color, #212529); border: 1px solid var(--bs-border-color, rgba(0,0,0,0.1)); border-radius: 1rem; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); overflow: hidden; animation: hsm-fade-in 0.2s ease-out; } @keyframes hsm-fade-in { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } [data-bs-theme="dark"] .hsm-dialog { background: #1e293b; border-color: rgba(255,255,255,0.1); color: #f8f9fa; } .hsm-header { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.5rem; border-bottom: 1px solid var(--bs-border-color, rgba(0,0,0,0.1)); background: rgba(0,0,0,0.02); } [data-bs-theme="dark"] .hsm-header { background: rgba(255,255,255,0.02); border-color: rgba(255,255,255,0.1); } .hsm-close { background: transparent; border: none; color: inherit; opacity: 0.5; padding: 0.25rem 0.5rem; border-radius: 0.25rem; font-size: 1.2rem; line-height: 1; transition: opacity 0.2s; } .hsm-close:hover { opacity: 1; } .hsm-body { padding: 1.5rem; } .hsm-url-group { display: flex !important; align-items: stretch; } .hsm-url-group .form-control { flex: 1; min-width: 0; margin: 0; background: var(--bs-secondary-bg, #f8f9fa); border-color: var(--bs-border-color, #dee2e6); border-top-right-radius: 0; border-bottom-right-radius: 0; height: 42px; } .hsm-url-group .btn { flex: 0 0 auto; margin: 0; margin-left: -1px; border-top-left-radius: 0; border-bottom-left-radius: 0; height: 42px; display: flex; align-items: center; justify-content: center; padding: 0 1.25rem; z-index: 2; } [data-bs-theme="dark"] .hsm-url-group .form-control { background: #0f172a; border-color: #334155; color: #e2e8f0; } .hsm-share-grid { display: flex; flex-direction: column; gap: 0.5rem; } .hsm-share-grid .btn { display: flex; align-items: center; justify-content: center; font-size: 0.9rem; padding: 0.6rem; border-color: var(--bs-border-color); width: 100%; } [data-bs-theme="dark"] .hsm-share-grid .btn { color: #e2e8f0; border-color: #475569; } [data-bs-theme="dark"] .hsm-share-grid .btn:hover { background: #334155; border-color: #cbd5e1; } </style> <script> (function(){ const modal = document.getElementById('headingShareModal'); if(!modal) return; const input = modal.querySelector('#headingShareInput'); const copyBtn = modal.querySelector('.hsm-copy'); const twitter = modal.querySelector('#share-twitter'); const linkedin = modal.querySelector('#share-linkedin'); const facebook = modal.querySelector('#share-facebook'); const closeBtn = modal.querySelector('.hsm-close'); let lastFocus=null; let trapBound=false; function buildUrl(id){ return window.location.origin + window.location.pathname + '#' + id; } function isOpen(){ return !modal.hasAttribute('hidden'); } function hydrate(id){ const url=buildUrl(id); input.value=url; const enc=encodeURIComponent(url); const text=encodeURIComponent(document.title); if(twitter) twitter.href=`https://twitter.com/intent/tweet?url=${enc}&text=${text}`; if(linkedin) linkedin.href=`https://www.linkedin.com/sharing/share-offsite/?url=${enc}`; if(facebook) facebook.href=`https://www.facebook.com/sharer/sharer.php?u=${enc}`; } function openModal(id){ lastFocus=document.activeElement; hydrate(id); if(!isOpen()){ modal.removeAttribute('hidden'); } requestAnimationFrame(()=>{ input.focus(); }); trapFocus(); } function closeModal(){ if(!isOpen()) return; modal.setAttribute('hidden',''); if(lastFocus && typeof lastFocus.focus==='function') lastFocus.focus(); } function copyCurrent(){ try{ navigator.clipboard.writeText(input.value).then(()=>feedback(true),()=>fallback()); } catch(e){ fallback(); } } function fallback(){ input.select(); try{ document.execCommand('copy'); feedback(true);}catch(e){ feedback(false);} } function feedback(ok){ if(!copyBtn) return; const icon=copyBtn.querySelector('i'); if(!icon) return; const prev=copyBtn.getAttribute('data-prev')||icon.className; if(!copyBtn.getAttribute('data-prev')) copyBtn.setAttribute('data-prev',prev); icon.className= ok ? 'fa-duotone fa-clipboard-check':'fa-duotone fa-circle-exclamation'; setTimeout(()=>{ icon.className=prev; },1800); } function handleShareClick(e){ e.preventDefault(); const btn=e.currentTarget; const id=btn.getAttribute('data-share-target'); if(id) openModal(id); } function bindShareButtons(){ document.querySelectorAll('.h-share').forEach(btn=>{ if(!btn.dataset.hShareBound){ btn.addEventListener('click', handleShareClick); btn.dataset.hShareBound='1'; } }); } bindShareButtons(); if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', bindShareButtons); } else { requestAnimationFrame(bindShareButtons); } document.addEventListener('click', function(e){ const shareBtn=e.target.closest && e.target.closest('.h-share'); if(shareBtn && !shareBtn.dataset.hShareBound){ handleShareClick.call(shareBtn, e); } }, true); document.addEventListener('click', e=>{ if(e.target===modal) closeModal(); if(e.target.closest && e.target.closest('.hsm-close')){ e.preventDefault(); closeModal(); } if(copyBtn && (e.target===copyBtn || (e.target.closest && e.target.closest('.hsm-copy')))) { e.preventDefault(); copyCurrent(); } }); document.addEventListener('keydown', e=>{ if(e.key==='Escape' && isOpen()) closeModal(); }); function trapFocus(){ if(trapBound) return; trapBound=true; modal.addEventListener('keydown', f=>{ if(f.key==='Tab' && isOpen()){ const focusable=[...modal.querySelectorAll('a[href],button,input,textarea,select,[tabindex]:not([tabindex="-1"])')].filter(el=>!el.hasAttribute('disabled')); if(!focusable.length) return; const first=focusable[0]; const last=focusable[focusable.length-1]; if(f.shiftKey && document.activeElement===first){ f.preventDefault(); last.focus(); } else if(!f.shiftKey && document.activeElement===last){ f.preventDefault(); first.focus(); } } }); } if(closeBtn) closeBtn.addEventListener('click', e=>{ e.preventDefault(); closeModal(); }); })(); </script><p>Learn Geode through hands-on, step-by-step tutorials covering everything from basic queries to advanced graph algorithms. Each tutorial builds practical skills with real-world examples.</p> <h3 id="overview" class="position-relative d-flex align-items-center group"> <span>Overview</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="overview" aria-haspopup="dialog" aria-label="Share link: Overview"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3><p>These tutorials are designed for learning by doing. Whether you&rsquo;re new to graph databases or an experienced developer, these guides provide structured, progressive learning paths from basics to advanced topics.</p> <p>Each tutorial includes complete working examples, expected outputs, and exercises to reinforce learning. Follow tutorials sequentially for a comprehensive learning path, or jump to specific topics as needed.</p> <h3 id="learning-paths" class="position-relative d-flex align-items-center group"> <span>Learning Paths</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="learning-paths" aria-haspopup="dialog" aria-label="Share link: Learning Paths"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3> <h4 id="beginner-path" class="position-relative d-flex align-items-center group"> <span>Beginner Path</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="beginner-path" aria-haspopup="dialog" aria-label="Share link: Beginner Path"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><ol> <li><strong><a href="/docs/tutorials/repl-basics/" >REPL Basics</a> </strong> - Get comfortable with the interactive shell</li> <li><strong><a href="/docs/tutorials/match-basics/" >MATCH Basics</a> </strong> - Learn fundamental graph queries</li> <li><strong><a href="/docs/tutorials/overview/" >Tutorial Overview</a> </strong> - Understand the tutorial structure</li> </ol> <h4 id="intermediate-path" class="position-relative d-flex align-items-center group"> <span>Intermediate Path</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="intermediate-path" aria-haspopup="dialog" aria-label="Share link: Intermediate Path"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><ol start="4"> <li><strong><a href="/docs/tutorials/transaction-patterns-tutorial/" >Transaction Patterns</a> </strong> - Master ACID transactions</li> <li><strong><a href="/docs/tutorials/indexing-tutorial/" >Indexing Tutorial</a> </strong> - Optimize query performance</li> <li><strong><a href="/docs/tutorials/index-optimization/" >Index Optimization</a> </strong> - Advanced index strategies</li> </ol> <h4 id="advanced-path" class="position-relative d-flex align-items-center group"> <span>Advanced Path</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="advanced-path" aria-haspopup="dialog" aria-label="Share link: Advanced Path"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><ol start="7"> <li><strong><a href="/docs/tutorials/vector-search-tutorial/" >Vector Search</a> </strong> - Implement similarity search</li> <li><strong><a href="/docs/tutorials/graph-algorithms-tutorial/" >Graph Algorithms</a> </strong> - Apply graph algorithms</li> </ol> <h3 id="topics-in-this-section" class="position-relative d-flex align-items-center group"> <span>Topics in This Section</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="topics-in-this-section" aria-haspopup="dialog" aria-label="Share link: Topics in This Section"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3><ul> <li><strong><a href="/docs/tutorials/overview/" >Tutorial Overview</a> </strong> - Introduction to the tutorial series with learning objectives and prerequisites</li> <li><strong><a href="/docs/tutorials/repl-basics/" >REPL Basics</a> </strong> - Interactive shell fundamentals including commands, query execution, and meta commands</li> <li><strong><a href="/docs/tutorials/match-basics/" >MATCH Basics</a> </strong> - Core pattern matching concepts with node patterns, relationship patterns, and filtering</li> <li><strong><a href="/docs/tutorials/transaction-patterns-tutorial/" >Transaction Patterns</a> </strong> - ACID transactions with BEGIN/COMMIT/ROLLBACK, savepoints, and error handling</li> <li><strong><a href="/docs/tutorials/indexing-tutorial/" >Indexing Tutorial</a> </strong> - Index creation and usage covering all six index types</li> <li><strong><a href="/docs/tutorials/index-optimization/" >Index Optimization</a> </strong> - Advanced index optimization including EXPLAIN analysis and performance tuning</li> <li><strong><a href="/docs/tutorials/vector-search-tutorial/" >Vector Search Tutorial</a> </strong> - Similarity search with HNSW indexes, embeddings, and K-NN queries</li> <li><strong><a href="/docs/tutorials/graph-algorithms-tutorial/" >Graph Algorithms Tutorial</a> </strong> - Practical guide to PageRank, community detection, shortest paths, and centrality</li> </ul> <h3 id="tutorial-format" class="position-relative d-flex align-items-center group"> <span>Tutorial Format</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="tutorial-format" aria-haspopup="dialog" aria-label="Share link: Tutorial Format"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3><p>Each tutorial follows a consistent structure:</p> <h4 id="1-learning-objectives" class="position-relative d-flex align-items-center group"> <span>1. Learning Objectives</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="1-learning-objectives" aria-haspopup="dialog" aria-label="Share link: 1. Learning Objectives"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p>What you&rsquo;ll learn and prerequisites:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">Objectives: </span></span><span class="line"><span class="cl">- Understand pattern matching syntax </span></span><span class="line"><span class="cl">- Write basic MATCH queries </span></span><span class="line"><span class="cl">- Filter results with WHERE </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl">Prerequisites: </span></span><span class="line"><span class="cl">- Geode installed and running </span></span><span class="line"><span class="cl">- Basic SQL knowledge helpful but not required </span></span></code></pre></div> <h4 id="2-concepts" class="position-relative d-flex align-items-center group"> <span>2. Concepts</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="2-concepts" aria-haspopup="dialog" aria-label="Share link: 2. Concepts"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p>Core concepts explained with examples:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="err">--</span><span class="w"> </span><span class="py">Node</span><span class="w"> </span><span class="py">pattern</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">(</span><span class="py">variable</span><span class="p">:</span><span class="nc">Label</span><span class="w"> </span><span class="p">{</span><span class="py">property</span><span class="p">:</span><span class="w"> </span><span class="nc">value</span><span class="p">})</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">--</span><span class="w"> </span><span class="py">Explanation</span><span class="p">:</span><span class="w"> </span><span class="nc">Matches</span><span class="w"> </span><span class="py">nodes</span><span class="w"> </span><span class="py">with</span><span class="w"> </span><span class="py">Label</span><span class="w"> </span><span class="py">and</span><span class="w"> </span><span class="py">property</span><span class="w"> </span></span></span></code></pre></div> <h4 id="3-hands-on-exercises" class="position-relative d-flex align-items-center group"> <span>3. Hands-On Exercises</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="3-hands-on-exercises" aria-haspopup="dialog" aria-label="Share link: 3. Hands-On Exercises"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p>Practice with working examples:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="err">--</span><span class="w"> </span><span class="py">Exercise</span><span class="w"> </span><span class="py">1</span><span class="p">:</span><span class="w"> </span><span class="nc">Find</span><span class="w"> </span><span class="py">all</span><span class="w"> </span><span class="py">people</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">p</span><span class="p">:</span><span class="nc">Person</span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">RETURN</span><span class="w"> </span><span class="py">p</span><span class="err">.</span><span class="py">name</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">--</span><span class="w"> </span><span class="py">Expected</span><span class="w"> </span><span class="py">output</span><span class="p">:</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">┌─────────┐</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="nc">p</span><span class="err">.</span><span class="py">name</span><span class="w"> </span><span class="err">│</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├─────────┤</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">Alice</span><span class="w"> </span><span class="err">│</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">Bob</span><span class="w"> </span><span class="err">│</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">Charlie</span><span class="w"> </span><span class="err">│</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">└─────────┘</span><span class="w"> </span></span></span></code></pre></div> <h4 id="4-common-pitfalls" class="position-relative d-flex align-items-center group"> <span>4. Common Pitfalls</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="4-common-pitfalls" aria-haspopup="dialog" aria-label="Share link: 4. Common Pitfalls"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p>Learn from common mistakes:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="err">--</span><span class="w"> </span><span class="py">Wrong</span><span class="p">:</span><span class="w"> </span><span class="nc">Missing</span><span class="w"> </span><span class="py">variable</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">MATCH</span><span class="w"> </span><span class="p">(:</span><span class="nc">Person</span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">RETURN</span><span class="w"> </span><span class="py">name</span><span class="err">;</span><span class="w"> </span><span class="err">--</span><span class="w"> </span><span class="py">Error</span><span class="p">:</span><span class="w"> </span><span class="nc">name</span><span class="w"> </span><span class="py">not</span><span class="w"> </span><span class="py">bound</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">--</span><span class="w"> </span><span class="py">Right</span><span class="p">:</span><span class="w"> </span><span class="nc">Use</span><span class="w"> </span><span class="py">variable</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">p</span><span class="p">:</span><span class="nc">Person</span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">RETURN</span><span class="w"> </span><span class="py">p</span><span class="err">.</span><span class="py">name</span><span class="err">;</span><span class="w"> </span></span></span></code></pre></div> <h4 id="5-next-steps" class="position-relative d-flex align-items-center group"> <span>5. Next Steps</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="5-next-steps" aria-haspopup="dialog" aria-label="Share link: 5. Next Steps"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p>Suggested follow-up learning:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">Next: Learn about relationship patterns in [MATCH Basics](/docs/tutorials/match-basics/) </span></span></code></pre></div> <h3 id="quick-start-tutorial" class="position-relative d-flex align-items-center group"> <span>Quick Start Tutorial</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="quick-start-tutorial" aria-haspopup="dialog" aria-label="Share link: Quick Start Tutorial"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3> <h4 id="set-up-sample-data" class="position-relative d-flex align-items-center group"> <span>Set Up Sample Data</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="set-up-sample-data" aria-haspopup="dialog" aria-label="Share link: Set Up Sample Data"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="err">--</span><span class="w"> </span><span class="py">Create</span><span class="w"> </span><span class="py">a</span><span class="w"> </span><span class="py">social</span><span class="w"> </span><span class="py">network</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">CREATE</span><span class="w"> </span><span class="py">GRAPH</span><span class="w"> </span><span class="py">SocialNetwork</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">USE</span><span class="w"> </span><span class="py">SocialNetwork</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">--</span><span class="w"> </span><span class="py">Create</span><span class="w"> </span><span class="py">people</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">CREATE</span><span class="w"> </span><span class="p">(:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Alice&#34;</span><span class="p">,</span><span class="w"> </span><span class="nc">age</span><span class="p">:</span><span class="w"> </span><span class="nc">30</span><span class="p">,</span><span class="w"> </span><span class="py">city</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Seattle&#34;</span><span class="p">})</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nc">CREATE</span><span class="w"> </span><span class="p">(:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Bob&#34;</span><span class="p">,</span><span class="w"> </span><span class="nc">age</span><span class="p">:</span><span class="w"> </span><span class="nc">25</span><span class="p">,</span><span class="w"> </span><span class="py">city</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Portland&#34;</span><span class="p">})</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nc">CREATE</span><span class="w"> </span><span class="p">(:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Charlie&#34;</span><span class="p">,</span><span class="w"> </span><span class="nc">age</span><span class="p">:</span><span class="w"> </span><span class="nc">35</span><span class="p">,</span><span class="w"> </span><span class="py">city</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Seattle&#34;</span><span class="p">})</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">--</span><span class="w"> </span><span class="nc">Create</span><span class="w"> </span><span class="py">relationships</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">a</span><span class="p">:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Alice&#34;</span><span class="p">}),</span><span class="w"> </span><span class="p">(</span><span class="nc">b</span><span class="p">:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Bob&#34;</span><span class="p">})</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nc">CREATE</span><span class="w"> </span><span class="p">(</span><span class="py">a</span><span class="p">)</span><span class="err">-</span><span class="p">[:</span><span class="nc">KNOWS</span><span class="w"> </span><span class="p">{</span><span class="py">since</span><span class="p">:</span><span class="w"> </span><span class="nc">2020</span><span class="p">}]</span><span class="err">-&gt;</span><span class="p">(</span><span class="py">b</span><span class="p">)</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">b</span><span class="p">:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Bob&#34;</span><span class="p">}),</span><span class="w"> </span><span class="p">(</span><span class="nc">c</span><span class="p">:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Charlie&#34;</span><span class="p">})</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nc">CREATE</span><span class="w"> </span><span class="p">(</span><span class="py">b</span><span class="p">)</span><span class="err">-</span><span class="p">[:</span><span class="nc">KNOWS</span><span class="w"> </span><span class="p">{</span><span class="py">since</span><span class="p">:</span><span class="w"> </span><span class="nc">2021</span><span class="p">}]</span><span class="err">-&gt;</span><span class="p">(</span><span class="py">c</span><span class="p">)</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">a</span><span class="p">:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Alice&#34;</span><span class="p">}),</span><span class="w"> </span><span class="p">(</span><span class="nc">c</span><span class="p">:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Charlie&#34;</span><span class="p">})</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nc">CREATE</span><span class="w"> </span><span class="p">(</span><span class="py">a</span><span class="p">)</span><span class="err">-</span><span class="p">[:</span><span class="nc">KNOWS</span><span class="w"> </span><span class="p">{</span><span class="py">since</span><span class="p">:</span><span class="w"> </span><span class="nc">2019</span><span class="p">}]</span><span class="err">-&gt;</span><span class="p">(</span><span class="py">c</span><span class="p">)</span><span class="err">;</span><span class="w"> </span></span></span></code></pre></div> <h4 id="basic-queries" class="position-relative d-flex align-items-center group"> <span>Basic Queries</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="basic-queries" aria-haspopup="dialog" aria-label="Share link: Basic Queries"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="err">--</span><span class="w"> </span><span class="py">Query</span><span class="w"> </span><span class="py">1</span><span class="p">:</span><span class="w"> </span><span class="nc">Find</span><span class="w"> </span><span class="py">all</span><span class="w"> </span><span class="py">people</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">p</span><span class="p">:</span><span class="nc">Person</span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">RETURN</span><span class="w"> </span><span class="py">p</span><span class="err">.</span><span class="py">name</span><span class="p">,</span><span class="w"> </span><span class="py">p</span><span class="err">.</span><span class="py">age</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">ORDER</span><span class="w"> </span><span class="py">BY</span><span class="w"> </span><span class="py">p</span><span class="err">.</span><span class="py">age</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">--</span><span class="w"> </span><span class="py">Query</span><span class="w"> </span><span class="py">2</span><span class="p">:</span><span class="w"> </span><span class="nc">Find</span><span class="w"> </span><span class="py">Alice</span><span class="err">&#39;</span><span class="py">s</span><span class="w"> </span><span class="py">friends</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">alice</span><span class="p">:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Alice&#34;</span><span class="p">})</span><span class="err">-</span><span class="p">[:</span><span class="nc">KNOWS</span><span class="p">]</span><span class="err">-&gt;</span><span class="p">(</span><span class="nc">friend</span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">RETURN</span><span class="w"> </span><span class="py">friend</span><span class="err">.</span><span class="py">name</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">--</span><span class="w"> </span><span class="py">Query</span><span class="w"> </span><span class="py">3</span><span class="p">:</span><span class="w"> </span><span class="nc">Find</span><span class="w"> </span><span class="py">people</span><span class="w"> </span><span class="py">in</span><span class="w"> </span><span class="py">Seattle</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">p</span><span class="p">:</span><span class="nc">Person</span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">WHERE</span><span class="w"> </span><span class="py">p</span><span class="err">.</span><span class="py">city</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">&#34;Seattle&#34;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">RETURN</span><span class="w"> </span><span class="py">p</span><span class="err">.</span><span class="py">name</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">--</span><span class="w"> </span><span class="py">Query</span><span class="w"> </span><span class="py">4</span><span class="p">:</span><span class="w"> </span><span class="nc">Count</span><span class="w"> </span><span class="py">relationships</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">MATCH</span><span class="w"> </span><span class="p">()</span><span class="err">-</span><span class="p">[</span><span class="py">k</span><span class="p">:</span><span class="nc">KNOWS</span><span class="p">]</span><span class="err">-&gt;</span><span class="p">()</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">RETURN</span><span class="w"> </span><span class="py">count</span><span class="p">(</span><span class="py">k</span><span class="p">)</span><span class="w"> </span><span class="py">AS</span><span class="w"> </span><span class="py">friendship_count</span><span class="err">;</span><span class="w"> </span></span></span></code></pre></div> <h4 id="using-the-repl" class="position-relative d-flex align-items-center group"> <span>Using the REPL</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="using-the-repl" aria-haspopup="dialog" aria-label="Share link: Using the REPL"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Start interactive shell</span> </span></span><span class="line"><span class="cl">geode shell </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl"><span class="c1"># Enable timing</span> </span></span><span class="line"><span class="cl"><span class="se">\t</span>iming on </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl"><span class="c1"># Run query</span> </span></span><span class="line"><span class="cl">MATCH <span class="o">(</span>p:Person<span class="o">)</span> RETURN p.name<span class="p">;</span> </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl"><span class="c1"># Check execution time</span> </span></span><span class="line"><span class="cl">-- Query executed in 0.523ms </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl"><span class="c1"># Exit</span> </span></span><span class="line"><span class="cl"><span class="se">\q</span>uit </span></span></code></pre></div> <h3 id="tutorial-highlights" class="position-relative d-flex align-items-center group"> <span>Tutorial Highlights</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="tutorial-highlights" aria-haspopup="dialog" aria-label="Share link: Tutorial Highlights"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3> <h4 id="repl-basics-tutorial" class="position-relative d-flex align-items-center group"> <span>REPL Basics Tutorial</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="repl-basics-tutorial" aria-haspopup="dialog" aria-label="Share link: REPL Basics Tutorial"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p>Master the interactive shell:</p> <ul> <li><strong>Meta Commands</strong>: <code>\help</code>, <code>\connect</code>, <code>\timing</code>, <code>\format</code></li> <li><strong>Query Execution</strong>: Single-line and multi-line queries</li> <li><strong>Output Formats</strong>: Text tables and JSON</li> <li><strong>Transaction Control</strong>: <code>\begin</code>, <code>\commit</code>, <code>\rollback</code></li> <li><strong>History</strong>: Command history and search</li> </ul> <p><strong>See</strong>: <a href="/docs/tutorials/repl-basics/" >REPL Basics</a> </p> <h4 id="match-basics-tutorial" class="position-relative d-flex align-items-center group"> <span>MATCH Basics Tutorial</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="match-basics-tutorial" aria-haspopup="dialog" aria-label="Share link: MATCH Basics Tutorial"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p>Learn pattern matching:</p> <ul> <li><strong>Node Patterns</strong>: <code>(n:Label {property: value})</code></li> <li><strong>Relationship Patterns</strong>: <code>-[:TYPE]-&gt;</code>, <code>&lt;-[:TYPE]-</code>, <code>-[:TYPE]-</code></li> <li><strong>Path Patterns</strong>: <code>(a)-[:KNOWS*1..3]-&gt;(b)</code></li> <li><strong>Filtering</strong>: WHERE clauses with complex conditions</li> <li><strong>Aggregation</strong>: COUNT, SUM, AVG, MIN, MAX</li> </ul> <p><strong>See</strong>: <a href="/docs/tutorials/match-basics/" >MATCH Basics</a> </p> <h4 id="transaction-patterns-tutorial" class="position-relative d-flex align-items-center group"> <span>Transaction Patterns Tutorial</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="transaction-patterns-tutorial" aria-haspopup="dialog" aria-label="Share link: Transaction Patterns Tutorial"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p>Master ACID transactions:</p> <ul> <li><strong>Basic Transactions</strong>: BEGIN, COMMIT, ROLLBACK</li> <li><strong>Isolation Levels</strong>: Read Committed to Serializable</li> <li><strong>Savepoints</strong>: Partial rollback within transaction</li> <li><strong>Error Handling</strong>: Retry logic for serialization errors</li> <li><strong>Patterns</strong>: Optimistic concurrency, pessimistic locking</li> </ul> <p><strong>See</strong>: <a href="/docs/tutorials/transaction-patterns-tutorial/" >Transaction Patterns</a> </p> <h4 id="indexing-tutorial" class="position-relative d-flex align-items-center group"> <span>Indexing Tutorial</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="indexing-tutorial" aria-haspopup="dialog" aria-label="Share link: Indexing Tutorial"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p>Optimize query performance:</p> <ul> <li><strong>Index Types</strong>: B-tree, Hash, HNSW, R-tree, Full-text, Patricia Trie</li> <li><strong>Index Creation</strong>: CREATE INDEX syntax for each type</li> <li><strong>Index Usage</strong>: EXPLAIN to verify index selection</li> <li><strong>Performance</strong>: Before/after index benchmarks</li> <li><strong>Maintenance</strong>: Index statistics and rebuilding</li> </ul> <p><strong>See</strong>: <a href="/docs/tutorials/indexing-tutorial/" >Indexing Tutorial</a> </p> <h4 id="index-optimization-tutorial" class="position-relative d-flex align-items-center group"> <span>Index Optimization Tutorial</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="index-optimization-tutorial" aria-haspopup="dialog" aria-label="Share link: Index Optimization Tutorial"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p>Advanced index strategies:</p> <ul> <li><strong>EXPLAIN Analysis</strong>: Understand query plans</li> <li><strong>PROFILE Analysis</strong>: Measure actual performance</li> <li><strong>Composite Indexes</strong>: Multi-column indexes</li> <li><strong>Partial Indexes</strong>: Filtered indexes for subsets</li> <li><strong>Index Selection</strong>: When to use each index type</li> </ul> <p><strong>See</strong>: <a href="/docs/tutorials/index-optimization/" >Index Optimization</a> </p> <h4 id="vector-search-tutorial" class="position-relative d-flex align-items-center group"> <span>Vector Search Tutorial</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="vector-search-tutorial" aria-haspopup="dialog" aria-label="Share link: Vector Search Tutorial"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p>Implement similarity search:</p> <ul> <li><strong>HNSW Indexes</strong>: High-performance approximate search</li> <li><strong>Embeddings</strong>: Generate and store vector embeddings</li> <li><strong>K-NN Queries</strong>: Find similar items</li> <li><strong>Distance Metrics</strong>: L2, cosine, dot product</li> <li><strong>Hybrid Search</strong>: Combine vector and keyword search</li> </ul> <p><strong>See</strong>: <a href="/docs/tutorials/vector-search-tutorial/" >Vector Search Tutorial</a> </p> <h4 id="graph-algorithms-tutorial" class="position-relative d-flex align-items-center group"> <span>Graph Algorithms Tutorial</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="graph-algorithms-tutorial" aria-haspopup="dialog" aria-label="Share link: Graph Algorithms Tutorial"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p>Apply graph algorithms:</p> <ul> <li><strong>PageRank</strong>: Identify important nodes</li> <li><strong>Community Detection</strong>: Find clusters</li> <li><strong>Shortest Paths</strong>: Dijkstra and A* algorithms</li> <li><strong>Centrality</strong>: Betweenness, closeness, degree</li> <li><strong>Practical Examples</strong>: Social networks, recommendations</li> </ul> <p><strong>See</strong>: <a href="/docs/tutorials/graph-algorithms-tutorial/" >Graph Algorithms Tutorial</a> </p> <h3 id="sample-datasets" class="position-relative d-flex align-items-center group"> <span>Sample Datasets</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="sample-datasets" aria-haspopup="dialog" aria-label="Share link: Sample Datasets"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3> <h4 id="social-network" class="position-relative d-flex align-items-center group"> <span>Social Network</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="social-network" aria-haspopup="dialog" aria-label="Share link: Social Network"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="err">--</span><span class="w"> </span><span class="py">Create</span><span class="w"> </span><span class="py">sample</span><span class="w"> </span><span class="py">social</span><span class="w"> </span><span class="py">network</span><span class="w"> </span><span class="p">(</span><span class="py">10</span><span class="w"> </span><span class="py">people</span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">CREATE</span><span class="w"> </span><span class="p">(:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Alice&#34;</span><span class="p">,</span><span class="w"> </span><span class="nc">age</span><span class="p">:</span><span class="w"> </span><span class="nc">30</span><span class="p">,</span><span class="w"> </span><span class="py">interests</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s">&#34;hiking&#34;</span><span class="p">,</span><span class="w"> </span><span class="s">&#34;reading&#34;</span><span class="p">]})</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nc">CREATE</span><span class="w"> </span><span class="p">(:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Bob&#34;</span><span class="p">,</span><span class="w"> </span><span class="nc">age</span><span class="p">:</span><span class="w"> </span><span class="nc">25</span><span class="p">,</span><span class="w"> </span><span class="py">interests</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s">&#34;gaming&#34;</span><span class="p">,</span><span class="w"> </span><span class="s">&#34;cooking&#34;</span><span class="p">]})</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nc">CREATE</span><span class="w"> </span><span class="p">(:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Charlie&#34;</span><span class="p">,</span><span class="w"> </span><span class="nc">age</span><span class="p">:</span><span class="w"> </span><span class="nc">35</span><span class="p">,</span><span class="w"> </span><span class="py">interests</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s">&#34;hiking&#34;</span><span class="p">,</span><span class="w"> </span><span class="s">&#34;photography&#34;</span><span class="p">]})</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">--</span><span class="w"> </span><span class="kd">...</span><span class="w"> </span><span class="nc">7</span><span class="w"> </span><span class="py">more</span><span class="w"> </span><span class="py">people</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">--</span><span class="w"> </span><span class="py">Create</span><span class="w"> </span><span class="py">friendships</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">a</span><span class="p">:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Alice&#34;</span><span class="p">}),</span><span class="w"> </span><span class="p">(</span><span class="nc">b</span><span class="p">:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Bob&#34;</span><span class="p">})</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nc">CREATE</span><span class="w"> </span><span class="p">(</span><span class="py">a</span><span class="p">)</span><span class="err">-</span><span class="p">[:</span><span class="nc">KNOWS</span><span class="w"> </span><span class="p">{</span><span class="py">since</span><span class="p">:</span><span class="w"> </span><span class="nc">2020</span><span class="p">}]</span><span class="err">-&gt;</span><span class="p">(</span><span class="py">b</span><span class="p">)</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">--</span><span class="w"> </span><span class="kd">...</span><span class="w"> </span><span class="py">more</span><span class="w"> </span><span class="py">relationships</span><span class="w"> </span></span></span></code></pre></div> <h4 id="e-commerce" class="position-relative d-flex align-items-center group"> <span>E-Commerce</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="e-commerce" aria-haspopup="dialog" aria-label="Share link: E-Commerce"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="err">--</span><span class="w"> </span><span class="py">Products</span><span class="w"> </span><span class="py">and</span><span class="w"> </span><span class="py">categories</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">CREATE</span><span class="w"> </span><span class="p">(:</span><span class="nc">Product</span><span class="w"> </span><span class="p">{</span><span class="py">sku</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;WIDGET-001&#34;</span><span class="p">,</span><span class="w"> </span><span class="nc">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Widget&#34;</span><span class="p">,</span><span class="w"> </span><span class="nc">price</span><span class="p">:</span><span class="w"> </span><span class="nc">29</span><span class="mf">.99</span><span class="p">})</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">CREATE</span><span class="w"> </span><span class="p">(:</span><span class="nc">Category</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Widgets&#34;</span><span class="p">})</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">--</span><span class="w"> </span><span class="nc">Customers</span><span class="w"> </span><span class="py">and</span><span class="w"> </span><span class="py">orders</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">CREATE</span><span class="w"> </span><span class="p">(:</span><span class="nc">Customer</span><span class="w"> </span><span class="p">{</span><span class="py">id</span><span class="p">:</span><span class="w"> </span><span class="nc">1</span><span class="p">,</span><span class="w"> </span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Alice&#34;</span><span class="p">,</span><span class="w"> </span><span class="nc">email</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;[email protected]&#34;</span><span class="p">})</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nc">CREATE</span><span class="w"> </span><span class="p">(:</span><span class="nc">Order</span><span class="w"> </span><span class="p">{</span><span class="py">order_id</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;ORD-001&#34;</span><span class="p">,</span><span class="w"> </span><span class="nc">total</span><span class="p">:</span><span class="w"> </span><span class="nc">59</span><span class="mf">.98</span><span class="p">,</span><span class="w"> </span><span class="py">status</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;shipped&#34;</span><span class="p">})</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">--</span><span class="w"> </span><span class="nc">Relationships</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">p</span><span class="p">:</span><span class="nc">Product</span><span class="w"> </span><span class="p">{</span><span class="py">sku</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;WIDGET-001&#34;</span><span class="p">}),</span><span class="w"> </span><span class="p">(</span><span class="nc">c</span><span class="p">:</span><span class="nc">Category</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Widgets&#34;</span><span class="p">})</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nc">CREATE</span><span class="w"> </span><span class="p">(</span><span class="py">p</span><span class="p">)</span><span class="err">-</span><span class="p">[:</span><span class="nc">IN_CATEGORY</span><span class="p">]</span><span class="err">-&gt;</span><span class="p">(</span><span class="py">c</span><span class="p">)</span><span class="err">;</span><span class="w"> </span></span></span></code></pre></div> <h4 id="knowledge-graph" class="position-relative d-flex align-items-center group"> <span>Knowledge Graph</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="knowledge-graph" aria-haspopup="dialog" aria-label="Share link: Knowledge Graph"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="err">--</span><span class="w"> </span><span class="py">Entities</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">CREATE</span><span class="w"> </span><span class="p">(:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Alan Turing&#34;</span><span class="p">,</span><span class="w"> </span><span class="nc">born</span><span class="p">:</span><span class="w"> </span><span class="nc">1912</span><span class="p">,</span><span class="w"> </span><span class="py">died</span><span class="p">:</span><span class="w"> </span><span class="nc">1954</span><span class="p">})</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">CREATE</span><span class="w"> </span><span class="p">(:</span><span class="nc">Concept</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Computer Science&#34;</span><span class="p">})</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nc">CREATE</span><span class="w"> </span><span class="p">(:</span><span class="nc">Institution</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;University of Cambridge&#34;</span><span class="p">})</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">--</span><span class="w"> </span><span class="nc">Relationships</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">p</span><span class="p">:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Alan Turing&#34;</span><span class="p">}),</span><span class="w"> </span><span class="p">(</span><span class="nc">c</span><span class="p">:</span><span class="nc">Concept</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Computer Science&#34;</span><span class="p">})</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nc">CREATE</span><span class="w"> </span><span class="p">(</span><span class="py">p</span><span class="p">)</span><span class="err">-</span><span class="p">[:</span><span class="nc">CONTRIBUTED_TO</span><span class="p">]</span><span class="err">-&gt;</span><span class="p">(</span><span class="py">c</span><span class="p">)</span><span class="err">;</span><span class="w"> </span></span></span></code></pre></div> <h3 id="exercise-solutions" class="position-relative d-flex align-items-center group"> <span>Exercise Solutions</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="exercise-solutions" aria-haspopup="dialog" aria-label="Share link: Exercise Solutions"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3><p>Each tutorial includes exercises with solutions:</p> <h4 id="example-exercise" class="position-relative d-flex align-items-center group"> <span>Example Exercise</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="example-exercise" aria-haspopup="dialog" aria-label="Share link: Example Exercise"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p><strong>Exercise</strong>: Find people who have at least 2 friends.</p> <p><strong>Solution</strong>:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">p</span><span class="p">:</span><span class="nc">Person</span><span class="p">)</span><span class="err">-</span><span class="p">[:</span><span class="nc">KNOWS</span><span class="p">]</span><span class="err">-&gt;</span><span class="p">(</span><span class="py">friend</span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">WITH</span><span class="w"> </span><span class="py">p</span><span class="p">,</span><span class="w"> </span><span class="py">count</span><span class="p">(</span><span class="py">friend</span><span class="p">)</span><span class="w"> </span><span class="py">AS</span><span class="w"> </span><span class="py">friend_count</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">WHERE</span><span class="w"> </span><span class="py">friend_count</span><span class="w"> </span><span class="err">&gt;</span><span class="p">=</span><span class="w"> </span><span class="py">2</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">RETURN</span><span class="w"> </span><span class="py">p</span><span class="err">.</span><span class="py">name</span><span class="p">,</span><span class="w"> </span><span class="py">friend_count</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">ORDER</span><span class="w"> </span><span class="py">BY</span><span class="w"> </span><span class="py">friend_count</span><span class="w"> </span><span class="py">DESC</span><span class="err">;</span><span class="w"> </span></span></span></code></pre></div><p><strong>Explanation</strong>:</p> <ul> <li>MATCH finds all friendships</li> <li>WITH aggregates friends per person</li> <li>WHERE filters for 2+ friends</li> <li>RETURN shows results</li> </ul> <h3 id="best-practices-learned" class="position-relative d-flex align-items-center group"> <span>Best Practices Learned</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="best-practices-learned" aria-haspopup="dialog" aria-label="Share link: Best Practices Learned"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3><p>Throughout tutorials, you&rsquo;ll learn:</p> <h4 id="query-writing" class="position-relative d-flex align-items-center group"> <span>Query Writing</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="query-writing" aria-haspopup="dialog" aria-label="Share link: Query Writing"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><ul> <li>Start with selective filters</li> <li>Use LIMIT to prevent runaway queries</li> <li>Return only needed properties</li> <li>Use parameters instead of literals</li> </ul> <h4 id="performance" class="position-relative d-flex align-items-center group"> <span>Performance</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="performance" aria-haspopup="dialog" aria-label="Share link: Performance"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><ul> <li>Create indexes for frequent queries</li> <li>Use EXPLAIN before optimizing</li> <li>Profile production queries</li> <li>Monitor query patterns</li> </ul> <h4 id="data-modeling" class="position-relative d-flex align-items-center group"> <span>Data Modeling</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="data-modeling" aria-haspopup="dialog" aria-label="Share link: Data Modeling"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><ul> <li>Model relationships explicitly</li> <li>Use labels for categorization</li> <li>Choose appropriate property types</li> <li>Denormalize for performance</li> </ul> <h4 id="transactions" class="position-relative d-flex align-items-center group"> <span>Transactions</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="transactions" aria-haspopup="dialog" aria-label="Share link: Transactions"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><ul> <li>Keep transactions short</li> <li>Handle errors gracefully</li> <li>Use appropriate isolation level</li> <li>Implement retry logic</li> </ul> <h3 id="common-patterns" class="position-relative d-flex align-items-center group"> <span>Common Patterns</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="common-patterns" aria-haspopup="dialog" aria-label="Share link: Common Patterns"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3> <h4 id="find-friends-of-friends" class="position-relative d-flex align-items-center group"> <span>Find Friends of Friends</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="find-friends-of-friends" aria-haspopup="dialog" aria-label="Share link: Find Friends of Friends"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">me</span><span class="p">:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Alice&#34;</span><span class="p">})</span><span class="err">-</span><span class="p">[:</span><span class="nc">KNOWS</span><span class="err">*</span><span class="nc">2</span><span class="p">]</span><span class="err">-&gt;</span><span class="p">(</span><span class="py">fof</span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">WHERE</span><span class="w"> </span><span class="py">fof</span><span class="w"> </span><span class="err">&lt;&gt;</span><span class="w"> </span><span class="py">me</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">RETURN</span><span class="w"> </span><span class="py">DISTINCT</span><span class="w"> </span><span class="py">fof</span><span class="err">.</span><span class="py">name</span><span class="err">;</span><span class="w"> </span></span></span></code></pre></div> <h4 id="recommendation-engine" class="position-relative d-flex align-items-center group"> <span>Recommendation Engine</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="recommendation-engine" aria-haspopup="dialog" aria-label="Share link: Recommendation Engine"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">me</span><span class="p">:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Alice&#34;</span><span class="p">})</span><span class="err">-</span><span class="p">[:</span><span class="nc">LIKES</span><span class="p">]</span><span class="err">-&gt;</span><span class="p">(</span><span class="nc">item</span><span class="p">)</span><span class="err">&lt;-</span><span class="p">[:</span><span class="nc">LIKES</span><span class="p">]</span><span class="err">-</span><span class="p">(</span><span class="py">other</span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">other</span><span class="p">)</span><span class="err">-</span><span class="p">[:</span><span class="nc">LIKES</span><span class="p">]</span><span class="err">-&gt;</span><span class="p">(</span><span class="py">recommendation</span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">WHERE</span><span class="w"> </span><span class="py">NOT</span><span class="w"> </span><span class="p">(</span><span class="py">me</span><span class="p">)</span><span class="err">-</span><span class="p">[:</span><span class="nc">LIKES</span><span class="p">]</span><span class="err">-&gt;</span><span class="p">(</span><span class="py">recommendation</span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">RETURN</span><span class="w"> </span><span class="py">recommendation</span><span class="err">.</span><span class="py">name</span><span class="p">,</span><span class="w"> </span><span class="py">count</span><span class="p">(</span><span class="err">*</span><span class="p">)</span><span class="w"> </span><span class="py">AS</span><span class="w"> </span><span class="py">score</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">ORDER</span><span class="w"> </span><span class="py">BY</span><span class="w"> </span><span class="py">score</span><span class="w"> </span><span class="py">DESC</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">LIMIT</span><span class="w"> </span><span class="py">10</span><span class="err">;</span><span class="w"> </span></span></span></code></pre></div> <h4 id="shortest-path" class="position-relative d-flex align-items-center group"> <span>Shortest Path</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="shortest-path" aria-haspopup="dialog" aria-label="Share link: Shortest Path"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">MATCH</span><span class="w"> </span><span class="py">path</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="py">shortestPath</span><span class="p">(</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="p">(</span><span class="py">a</span><span class="p">:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Alice&#34;</span><span class="p">})</span><span class="err">-</span><span class="p">[</span><span class="err">*</span><span class="p">]</span><span class="err">-</span><span class="p">(</span><span class="nc">b</span><span class="p">:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="s">&#34;Bob&#34;</span><span class="p">})</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nc">RETURN</span><span class="w"> </span><span class="py">path</span><span class="p">,</span><span class="w"> </span><span class="py">length</span><span class="p">(</span><span class="py">path</span><span class="p">)</span><span class="w"> </span><span class="py">AS</span><span class="w"> </span><span class="py">hops</span><span class="err">;</span><span class="w"> </span></span></span></code></pre></div> <h3 id="troubleshooting-tips" class="position-relative d-flex align-items-center group"> <span>Troubleshooting Tips</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="troubleshooting-tips" aria-haspopup="dialog" aria-label="Share link: Troubleshooting Tips"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3> <h4 id="query-not-returning-results" class="position-relative d-flex align-items-center group"> <span>Query Not Returning Results</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="query-not-returning-results" aria-haspopup="dialog" aria-label="Share link: Query Not Returning Results"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><ol> <li>Verify data exists: <code>MATCH (n) RETURN count(n);</code></li> <li>Check labels: <code>MATCH (n) RETURN DISTINCT labels(n);</code></li> <li>Simplify pattern: Remove constraints one by one</li> <li>Use EXPLAIN: Verify query plan</li> </ol> <h4 id="slow-queries" class="position-relative d-flex align-items-center group"> <span>Slow Queries</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="slow-queries" aria-haspopup="dialog" aria-label="Share link: Slow Queries"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><ol> <li>Check for indexes: <code>SHOW INDEXES;</code></li> <li>Use PROFILE: Identify bottlenecks</li> <li>Create missing indexes</li> <li>Limit result size</li> </ol> <h4 id="transaction-errors" class="position-relative d-flex align-items-center group"> <span>Transaction Errors</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="transaction-errors" aria-haspopup="dialog" aria-label="Share link: Transaction Errors"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><ol> <li>Check isolation level</li> <li>Implement retry logic</li> <li>Reduce transaction scope</li> <li>Check for deadlocks</li> </ol> <h3 id="learn-more" class="position-relative d-flex align-items-center group"> <span>Learn More</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="learn-more" aria-haspopup="dialog" aria-label="Share link: Learn More"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3><p>After completing tutorials:</p> <ul> <li><strong><a href="/docs/gql/guide/" >GQL Guide</a> </strong> - Complete language reference</li> <li><strong><a href="/docs/model/data-model-and-types/" >Data Model</a> </strong> - Graph modeling in depth</li> <li><strong><a href="/docs/query/performance-tuning/" >Query Optimization</a> </strong> - Advanced optimization</li> <li><strong><a href="/docs/use-cases/" >Use Cases</a> </strong> - Real-world applications</li> <li><strong><a href="/docs/reference/api-reference-complete/" >API Reference</a> </strong> - Complete API documentation</li> </ul> <h3 id="next-steps" class="position-relative d-flex align-items-center group"> <span>Next Steps</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="next-steps" aria-haspopup="dialog" aria-label="Share link: Next Steps"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3><p>Start your learning journey:</p> <ol> <li><strong><a href="/docs/tutorials/repl-basics/" >Begin with REPL Basics</a> </strong> - Get comfortable with the shell</li> <li><strong><a href="/docs/tutorials/match-basics/" >Learn MATCH Patterns</a> </strong> - Master graph queries</li> <li><strong><a href="/docs/tutorials/transaction-patterns-tutorial/" >Practice Transactions</a> </strong> - Ensure data consistency</li> <li><strong><a href="/docs/tutorials/indexing-tutorial/" >Optimize with Indexes</a> </strong> - Improve performance</li> <li><strong><a href="/docs/tutorials/graph-algorithms-tutorial/" >Explore Advanced Topics</a> </strong> - Apply algorithms</li> </ol> <h3 id="contributing-tutorials" class="position-relative d-flex align-items-center group"> <span>Contributing Tutorials</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="contributing-tutorials" aria-haspopup="dialog" aria-label="Share link: Contributing Tutorials"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3><p>Have a tutorial idea? Contributions welcome!</p> <p>See <a href="/docs/contribute/" >Contributing Guide</a> for how to submit new tutorials or improvements.</p>

Pages