doc: update neo4j.md (#638) 6f16c43dc5

This commit is contained in:
jaywcjlove
2024-05-07 01:53:54 +00:00
parent 5e0634f365
commit d19b0e0add
5 changed files with 46 additions and 18 deletions

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 9.2 MiB

After

Width:  |  Height:  |  Size: 9.2 MiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -30,7 +30,7 @@
<p>这个 <a href="https://neo4j.com/docs/">neo4j</a> 快速参考备忘单显示了它的常用命令</p>
</div></header><div class="menu-tocs"><div class="menu-btn"><svg aria-hidden="true" fill="currentColor" height="1em" width="1em" viewBox="0 0 16 16" version="1.1" data-view-component="true">
<path fill-rule="evenodd" d="M2 4a1 1 0 100-2 1 1 0 000 2zm3.75-1.5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zM3 8a1 1 0 11-2 0 1 1 0 012 0zm-1 6a1 1 0 100-2 1 1 0 000 2z"></path>
</svg></div><div class="menu-modal"><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#入门">入门</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#neo4j-安装">Neo4J 安装</a><a aria-hidden="true" class="leve4 tocs-link" data-num="4" href="#运行">运行</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#neo4j-使用">Neo4J 使用</a><a aria-hidden="true" class="leve4 tocs-link" data-num="4" href="#进入管理页面">进入管理页面</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#neo4j-示例">Neo4j 示例</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#创建">创建</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#删除">删除</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#查询">查询</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#创建节点和关系">创建节点和关系</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#增加修改节点的属性">增加/修改节点的属性</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#查询节点和关系">查询节点和关系</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#更新节点和关系">更新节点和关系</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#更复杂的查询">更复杂的查询</a></div></div><div class="h1wrap-body"><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="入门"><a aria-hidden="true" tabindex="-1" href="#入门"><span class="icon icon-link"></span></a>入门</h2><div class="wrap-body">
</svg></div><div class="menu-modal"><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#入门">入门</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#neo4j-安装">Neo4J 安装</a><a aria-hidden="true" class="leve4 tocs-link" data-num="4" href="#运行">运行</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#neo4j-使用">Neo4J 使用</a><a aria-hidden="true" class="leve4 tocs-link" data-num="4" href="#进入管理页面">进入管理页面</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#neo4j-示例">Neo4j 示例</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#创建">创建</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#删除">删除</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#查询">查询</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#创建节点和关系">创建节点和关系</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#增加修改节点的属性">增加/修改节点的属性</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#查询节点和关系">查询节点和关系</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#更新节点和关系">更新节点和关系</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#更复杂的查询">更复杂的查询</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#排序分页">排序&#x26;分页</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#聚合函数">聚合函数</a></div></div><div class="h1wrap-body"><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="入门"><a aria-hidden="true" tabindex="-1" href="#入门"><span class="icon icon-link"></span></a>入门</h2><div class="wrap-body">
</div></div><div class="h2wrap-body"><div class="wrap h3body-exist"><div class="wrap-header h3wrap"><h3 id="neo4j-安装"><a aria-hidden="true" tabindex="-1" href="#neo4j-安装"><span class="icon icon-link"></span></a>Neo4J 安装</h3><div class="wrap-body">
<p>当开始使用 Neo4j 时,首先需要从<a href="https://neo4j.com/download/">官网下载页面</a>下载 Neo4j。Neo4j 分为社区版和企业版。尽管企业版在横向扩展、权限控制、运行性能和高可用性等方面更优秀,适合正式的生产环境,但对于普通的学习和开发,免费的社区版就足够了。</p>
<h4 id="运行"><a aria-hidden="true" tabindex="-1" href="#运行"><span class="icon icon-link"></span></a>运行</h4>
@ -145,11 +145,39 @@
</span><span class="code-line"><span class="token keyword">MATCH</span> <span class="token punctuation">(</span>alice<span class="token operator">:</span><span class="token class-name">Person</span> <span class="token punctuation">{</span>name<span class="token operator">:</span> <span class="token string">'Alice'</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token punctuation">[</span><span class="token operator">:</span><span class="token relationship property">FRIENDS</span><span class="token punctuation">]</span><span class="token operator">-></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token punctuation">[</span><span class="token operator">:</span><span class="token relationship property">FRIENDS</span><span class="token punctuation">]</span><span class="token operator">-></span><span class="token punctuation">(</span>fof<span class="token punctuation">)</span>
</span><span class="code-line"><span class="token keyword">RETURN</span> fof
</span><span class="code-line">
</span><span class="code-line"><span class="token comment">// 查找共同朋友</span>
</span><span class="code-line"><span class="token comment">// 查找共同朋友,这里的“,”相当于 AND 条件</span>
</span><span class="code-line"><span class="token keyword">MATCH</span> <span class="token punctuation">(</span>alice<span class="token operator">:</span><span class="token class-name">Person</span> <span class="token punctuation">{</span>name<span class="token operator">:</span> <span class="token string">'Alice'</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token punctuation">[</span><span class="token operator">:</span><span class="token relationship property">FRIENDS</span><span class="token punctuation">]</span><span class="token operator">-></span><span class="token punctuation">(</span>friend<span class="token punctuation">)</span><span class="token punctuation">,</span>
</span><span class="code-line"> <span class="token punctuation">(</span>bob<span class="token operator">:</span><span class="token class-name">Person</span> <span class="token punctuation">{</span>name<span class="token operator">:</span> <span class="token string">'Bob'</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token punctuation">[</span><span class="token operator">:</span><span class="token relationship property">FRIENDS</span><span class="token punctuation">]</span><span class="token operator">-></span><span class="token punctuation">(</span>friend<span class="token punctuation">)</span>
</span><span class="code-line"><span class="token keyword">RETURN</span> friend
</span></code></pre>
<p>通过观察<code>John的朋友</code>看过的电影为<code>John</code>推荐电影,并且不再推荐<code>John</code>他自己已经看过的电影。</p>
<pre class="language-cypher"><code class="language-cypher code-highlight"><span class="code-line"><span class="token keyword">MATCH</span> <span class="token punctuation">(</span>tom<span class="token operator">:</span><span class="token class-name">Person</span> <span class="token punctuation">{</span>name<span class="token operator">:</span> <span class="token string">"John Johnson"</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token punctuation">[</span><span class="token operator">:</span><span class="token relationship property">IS_FRIEND_OF</span><span class="token punctuation">]</span><span class="token operator">-></span><span class="token punctuation">(</span>user<span class="token punctuation">)</span><span class="token operator">-</span><span class="token punctuation">[</span><span class="token operator">:</span><span class="token relationship property">HAS_SEEN</span><span class="token punctuation">]</span><span class="token operator">-></span><span class="token punctuation">(</span>movie<span class="token punctuation">)</span>
</span><span class="code-line"><span class="token keyword">WHERE</span> <span class="token keyword">NOT</span> tom<span class="token operator">-</span><span class="token punctuation">[</span><span class="token operator">:</span><span class="token relationship property">HAS_SEEN</span><span class="token punctuation">]</span><span class="token operator">-></span><span class="token punctuation">(</span>movie<span class="token punctuation">)</span> <span class="token keyword">RETURN</span> movie<span class="token punctuation">.</span>name<span class="token punctuation">;</span>
</span></code></pre>
<p>找出所有标题以<code>Apollo</code>开头且发行年份早于<code>1996</code>年的电影节点</p>
<pre class="language-cypher"><code class="language-cypher code-highlight"><span class="code-line"><span class="token keyword">MATCH</span> <span class="token punctuation">(</span><span class="token keyword">node</span><span class="token operator">:</span><span class="token class-name">Movie</span><span class="token punctuation">)</span>
</span><span class="code-line"><span class="token keyword">WHERE</span> <span class="token keyword">node</span><span class="token punctuation">.</span>title <span class="token operator">=~</span> <span class="token string">'Apollo.*'</span> <span class="token keyword">AND</span> <span class="token keyword">node</span><span class="token punctuation">.</span>released <span class="token operator">&#x3C;</span> <span class="token number">1996</span>
</span><span class="code-line"><span class="token keyword">RETURN</span> <span class="token keyword">node</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="排序分页"><a aria-hidden="true" tabindex="-1" href="#排序分页"><span class="icon icon-link"></span></a>排序&#x26;分页</h3><div class="wrap-body">
<p>以电影名字排序每一网页只显示10部电影下面的查询返回了第三页21~30项</p>
<pre class="language-cypher"><code class="language-cypher code-highlight"><span class="code-line"><span class="token keyword">match</span> <span class="token punctuation">(</span>alice<span class="token operator">:</span><span class="token class-name">Person</span> <span class="token punctuation">{</span>name<span class="token operator">:</span> <span class="token string">'Alice'</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token punctuation">[</span>HAS_SEEN<span class="token punctuation">]</span><span class="token operator">-></span><span class="token punctuation">(</span>movie<span class="token punctuation">)</span>
</span><span class="code-line"><span class="token keyword">return</span> movie
</span><span class="code-line"><span class="token keyword">order</span> <span class="token keyword">by</span> movie<span class="token punctuation">.</span>name
</span><span class="code-line"><span class="token keyword">skip</span> <span class="token number">20</span>
</span><span class="code-line"><span class="token keyword">limit</span> <span class="token number">10</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="聚合函数"><a aria-hidden="true" tabindex="-1" href="#聚合函数"><span class="icon icon-link"></span></a>聚合函数</h3><div class="wrap-body">
<p>计算每一部电影被观看的数量,按数量排序</p>
<pre class="language-cypher"><code class="language-cypher code-highlight"><span class="code-line"> <span class="token keyword">match</span> <span class="token punctuation">(</span><span class="token keyword">node</span><span class="token operator">:</span><span class="token class-name">Movie</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token punctuation">[</span><span class="token operator">:</span><span class="token relationship property">HAS_BEEN_SEEN</span><span class="token punctuation">]</span><span class="token operator">-></span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</span><span class="code-line"><span class="token keyword">return</span> <span class="token keyword">node</span><span class="token punctuation">,</span><span class="token function">count</span><span class="token punctuation">(</span><span class="token operator">*</span><span class="token punctuation">)</span>
</span><span class="code-line"> <span class="token keyword">order</span> <span class="token keyword">by</span> <span class="token function">count</span><span class="token punctuation">(</span><span class="token operator">*</span><span class="token punctuation">)</span> <span class="token keyword">desc</span><span class="token punctuation">;</span>
</span></code></pre>
<p>要求<code>John</code>所有朋友的平均年龄,可以使用以下查询</p>
<pre class="language-cypher"><code class="language-cypher code-highlight"><span class="code-line"><span class="token keyword">match</span> <span class="token punctuation">(</span><span class="token keyword">node</span><span class="token operator">:</span><span class="token class-name">users</span><span class="token punctuation">{</span>name<span class="token operator">:</span> <span class="token string">"John Johnson"</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token punctuation">[</span><span class="token operator">:</span><span class="token relationship property">IS_FRIEND_OF</span><span class="token punctuation">]</span><span class="token operator">-</span><span class="token punctuation">(</span>friend<span class="token punctuation">)</span>
</span><span class="code-line"><span class="token keyword">where</span> <span class="token function">HAS</span><span class="token punctuation">(</span>friend<span class="token punctuation">.</span>yearOfBirth<span class="token punctuation">)</span>
</span><span class="code-line"><span class="token keyword">return</span> <span class="token function">avg</span><span class="token punctuation">(</span><span class="token number">2014</span><span class="token operator">-</span>friend<span class="token punctuation">.</span>yearOfBirth<span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></code></pre>
</div></div></div></div></div></div><script src="https://giscus.app/client.js" data-repo="jaywcjlove/reference" data-repo-id="R_kgDOID2-Mw" data-category="Q&#x26;A" data-category-id="DIC_kwDOID2-M84CS5wo" data-mapping="pathname" data-strict="0" data-reactions-enabled="1" data-emit-metadata="0" data-input-position="bottom" data-theme="dark" data-lang="zh-CN" crossorigin="anonymous" async></script><div class="giscus"></div></div><footer class="footer-wrap"><footer class="max-container">© 2022 <a href="https://wangchujiang.com/#/app" target="_blank">Kenny Wang</a>.</footer></footer><script src="../data.js?v=1.5.3" defer></script><script src="../js/fuse.min.js?v=1.5.3" defer></script><script src="../js/main.js?v=1.5.3" defer></script><div id="mysearch"><div class="mysearch-box"><div class="mysearch-input"><div><svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 18 18">
<path fill="currentColor" d="M17.71,16.29 L14.31,12.9 C15.4069846,11.5024547 16.0022094,9.77665502 16,8 C16,3.581722 12.418278,0 8,0 C3.581722,0 0,3.581722 0,8 C0,12.418278 3.581722,16 8,16 C9.77665502,16.0022094 11.5024547,15.4069846 12.9,14.31 L16.29,17.71 C16.4777666,17.8993127 16.7333625,18.0057983 17,18.0057983 C17.2666375,18.0057983 17.5222334,17.8993127 17.71,17.71 C17.8993127,17.5222334 18.0057983,17.2666375 18.0057983,17 C18.0057983,16.7333625 17.8993127,16.4777666 17.71,16.29 Z M2,8 C2,4.6862915 4.6862915,2 8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 Z"></path>
</svg><input id="mysearch-input" type="search" placeholder="搜索" autocomplete="off"><div class="mysearch-clear"></div></div><button id="mysearch-close" type="button">搜索</button></div><div class="mysearch-result"><div id="mysearch-menu"></div><div id="mysearch-content"></div></div></div></div></body>

View File

@ -1390,7 +1390,7 @@
<!--rehype:class=home-card home-links-->
<p>如果你有资源,可以很方便<a href="https://github.com/jaywcjlove/reference/issues/102#issue-1451649637">部署 web 版</a>,这非常简单,只需要克隆 <a href="https://github.com/jaywcjlove/reference/tree/gh-pages">gh-pages</a> 分支代码到你的静态服务就可以了,还可以使用 <a href="https://hub.docker.com/r/wcjiang/reference">docker</a> 快捷部署 web 版。</p>
</div></div><div class="h2wrap-body"></div></div></div></div><footer class="footer-wrap"><footer class="max-container">© 2022 <a href="https://wangchujiang.com/#/app" target="_blank">Kenny Wang</a>. Updated on 2024/05/06 07:02:22</footer></footer><script src="data.js?v=1.5.3" defer></script><script src="js/fuse.min.js?v=1.5.3" defer></script><script src="js/main.js?v=1.5.3" defer></script><div id="mysearch"><div class="mysearch-box"><div class="mysearch-input"><div><svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 18 18">
</div></div><div class="h2wrap-body"></div></div></div></div><footer class="footer-wrap"><footer class="max-container">© 2022 <a href="https://wangchujiang.com/#/app" target="_blank">Kenny Wang</a>. Updated on 2024/05/07 09:53:16</footer></footer><script src="data.js?v=1.5.3" defer></script><script src="js/fuse.min.js?v=1.5.3" defer></script><script src="js/main.js?v=1.5.3" defer></script><div id="mysearch"><div class="mysearch-box"><div class="mysearch-input"><div><svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 18 18">
<path fill="currentColor" d="M17.71,16.29 L14.31,12.9 C15.4069846,11.5024547 16.0022094,9.77665502 16,8 C16,3.581722 12.418278,0 8,0 C3.581722,0 0,3.581722 0,8 C0,12.418278 3.581722,16 8,16 C9.77665502,16.0022094 11.5024547,15.4069846 12.9,14.31 L16.29,17.71 C16.4777666,17.8993127 16.7333625,18.0057983 17,18.0057983 C17.2666375,18.0057983 17.5222334,17.8993127 17.71,17.71 C17.8993127,17.5222334 18.0057983,17.2666375 18.0057983,17 C18.0057983,16.7333625 17.8993127,16.4777666 17.71,16.29 Z M2,8 C2,4.6862915 4.6862915,2 8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 Z"></path>
</svg><input id="mysearch-input" type="search" placeholder="搜索" autocomplete="off"><div class="mysearch-clear"></div></div><button id="mysearch-close" type="button">搜索</button></div><div class="mysearch-result"><div id="mysearch-menu"></div><div id="mysearch-content"></div></div></div></div></body>
</html>