第9章 圖形存儲數(shù)據(jù)庫Neo4j_第1頁
第9章 圖形存儲數(shù)據(jù)庫Neo4j_第2頁
第9章 圖形存儲數(shù)據(jù)庫Neo4j_第3頁
第9章 圖形存儲數(shù)據(jù)庫Neo4j_第4頁
第9章 圖形存儲數(shù)據(jù)庫Neo4j_第5頁
已閱讀5頁,還剩51頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第9章圖形存儲數(shù)據(jù)庫Neo4j·Neo4j概述·

Neo4j的數(shù)據(jù)模型·Neo4j的部署·

Neo4j的操作?學習目標熟悉Neo4j概述12理解Neo4j的數(shù)據(jù)模型掌握Neo4j的部署3掌握4掌握Neo4j的操作熟悉理解掌握掌握

目錄

Neo4j的數(shù)據(jù)模型9.29.1Neo4j概述9.3

Neo4j的部署?點擊查看本節(jié)相關知識點?點擊查看本節(jié)相關知識點

Neo4j的操作9.4?點擊查看本節(jié)相關知識點9.1Neo4j概述

知識架構9.1.1Neo4j簡介Neo4j特點9.1.29.1.3Neo4j應用場景9.3Neo4j的部署

知識架構9.3.1基于Windows平臺基于Linux平臺9.3.29.4Neo4j的操作

知識架構9.4.1Neo4j的Cypher操作Neo4j的JavaAPI操作9.4.2本章將針對Neo4j數(shù)據(jù)庫的相關知識進行詳細講解。章節(jié)概要圖形存儲數(shù)據(jù)庫也是NoSQL數(shù)據(jù)庫的一種類型,它主要是應用圖形理論存儲實體之間的關系信息。常見的圖形存儲數(shù)據(jù)庫有Neo4j、FlockDB以及AllegroGrap。由于Neo4j數(shù)據(jù)庫是目前最流行、穩(wěn)定的圖形存儲數(shù)據(jù)庫。

9.1Neo4j的概述Neo4j是一個高性能、高可靠性、可擴展、支持ACID事務的圖數(shù)據(jù)庫。Neo4j數(shù)據(jù)庫也可以被看作是一個高性能的圖引擎,并且該引擎具有成熟數(shù)據(jù)庫的所有特性。Neo4j數(shù)據(jù)庫是基于Java語言開發(fā)的、且開源,其主要是應用圖形理論來存儲實體之間的關系信息,其中,實體被視為圖形的“節(jié)點”(node),關系被視為圖形的“邊”(edge),“邊”按照關系將“節(jié)點”進行連接。需要注意的是Neo4j數(shù)據(jù)庫的數(shù)據(jù)是存儲在網(wǎng)絡上,而不是存儲在數(shù)據(jù)表中;Neo4j數(shù)據(jù)庫使用的查詢語言是Cypher,類似關系數(shù)據(jù)庫中的SQL。Neo4j簡介

9.1Neo4j的概述Neo4j公司從2003年開始研發(fā)Neo4j數(shù)據(jù)庫,直到2007年Neo4j公司正式發(fā)布第一版本的Neo4j數(shù)據(jù)庫,主要應用于商業(yè)領域。Neo4j的源代碼托管在GitHub上,技術支持托管在StackOverflow和Neo4jGoogle討論組上。目前為止,Neo4j數(shù)據(jù)庫已經(jīng)被各種行業(yè)的數(shù)十萬家公司和組織使用(例如,領英、沃爾瑪、Facebook、eBay以及Cisco等)。Neo4j簡介

9.1Neo4j的概述Neo4j特點讀寫速度快迭代敏捷易用性高可用性資源豐富設計靈活應用廣泛

9.1Neo4j的概述Neo4j應用場景社區(qū)網(wǎng)絡交通運輸主數(shù)據(jù)管理物流管理訪問控制推薦引擎欺詐檢測

9.2Neo4j的數(shù)據(jù)模型Neo4j的數(shù)據(jù)模型是遵循屬性圖模型來存儲和管理數(shù)據(jù)的。下面,通過一張圖介紹一下Neo4j的數(shù)據(jù)模型,具體如圖所示。

9.2Neo4j的數(shù)據(jù)模型頂點圖中的頂點是使用圓來表示的,頂點也可稱為節(jié)點(Node),所有的節(jié)點都是獨立存在的。邊圖中的邊是使用有向箭頭表示的,邊也可稱為關系(Relationship),關系是通過關系類型進行分組,類型相同的關系則屬于同一個集合,因此關系類型是必須要設置的,并且只能設置一個。需要注意的是,關系是有方向性的(即通過有向箭頭標識方向,若是雙向關系則通過兩個相反的箭頭標識),關系的兩端是起始節(jié)點和結束節(jié)點。標簽圖中的標簽是使用label表示的,標簽類似于節(jié)點的類型,我們可以為節(jié)點設置任意個標簽,若是節(jié)點擁有相同的標簽,則節(jié)點屬于同一個集合(或同一種類型)。

9.2Neo4j的數(shù)據(jù)模型關系類型圖中的關系類型是使用Child(子女)、Friend(朋友)以及Stepchild(繼子或繼女)等表示的,關系類型主要用于標記關系的類型,多個關系可以有相同的關系類型。屬性圖中的屬性是使用鍵值對表示的,即“name:A”、“hobby:playing”以及“place:Shanghai”用于表示節(jié)點或關系的屬性。每個節(jié)點或關系可以擁有一個或多個屬性。

9.3Neo4j的部署Neo4j是一個開源、跨平臺的數(shù)據(jù)庫,因此Neo4j數(shù)據(jù)庫可以運行在Windows、Linux、MacOS等多個平臺上,為我們提供數(shù)據(jù)庫服務。不同的操作系統(tǒng)平臺,部署Neo4j也會有所不同。本節(jié),我們將詳細講解Neo4j數(shù)據(jù)庫基于Windows平臺和Linux平臺的部署。

9.3Neo4j的部署基于Windows平臺由于Neo4j數(shù)據(jù)庫是由Java語言開發(fā)的,并且該數(shù)據(jù)庫的安裝與使用依賴于Java環(huán)境,因此在安裝Neo4j數(shù)據(jù)庫之前,需要先安裝并配置好JDK?;赪indows平臺的Neo4j部署的具體步驟如下:1.JDK的下載安裝(1)通過訪問JDK官網(wǎng)進入JDK版本選擇界面,下載JDK安裝包。本書下載的是jdk1.11版本,即jdk-11.0.6_windows-x64_bin.exe可執(zhí)行程序。(2)雙擊下載好JDK安裝包jdk-11.0.6_windows-x64_bin.exe進行安裝,并將JDK的安裝路徑即bin目錄(JAVA_HOME和Path路徑)添加至系統(tǒng)環(huán)境變量中。

9.3Neo4j的部署基于Windows平臺1.JDK的下載安裝(3)在Windows的DOS窗口執(zhí)行“java-version”命令,查看JDK是否安裝成功,效果如圖所示。從圖中可以看出,JDK的版本號為11.0.6,說明JDK安裝成功。

9.3Neo4j的部署基于Windows平臺2.Neo4j的下載安裝(1)通過訪問Neo4j官網(wǎng)/download-center/進入Neo4j版本選擇界面,選擇要下載的Neo4j版本,具體如圖所示。

9.3Neo4j的部署基于Windows平臺2.Neo4j的下載安裝從圖中可以看出,Neo4j數(shù)據(jù)庫的版本分為企業(yè)、社區(qū)以及桌面三個版本,企業(yè)版需要收費,社區(qū)版免費開源,桌面版需要激活碼激活。由于編寫教材時的最新版本為4.0.3,因此這里選擇的是社區(qū)版的Neo4j4.0.3。單擊“CommunityServer”選項卡,選擇“Neo4j4.0.3(zip)”安裝包進行下載,如左圖所示。下載好的Neo4j安裝包,如右圖所示。

9.3Neo4j的部署基于Windows平臺2.Neo4j的下載安裝(2)解壓Neo4j安裝包通過解壓Neo4j安裝包,完成Neo4j的安裝。解壓后的Neo4j,如圖所示。

9.3Neo4j的部署基于Windows平臺2.Neo4j的下載安裝(2)解壓Neo4j安裝包從圖中可以看出,解壓后的Neo4j包含九個文件夾、五個文件以及一個安全證書。下面,我們通過一張表來介紹一下Neo4j安裝目錄中的主要文件夾,具體如表所示。文件夾名稱相關說明bin存放Neo4j的可執(zhí)行程序conf存放Neo4j啟動的相關配置文件data存放Neo4j數(shù)據(jù)庫的核心文件lib存放Neo4j所依賴的jar包logs存放Neo4j的日志文件plugins存放Neo4j的插件

9.3Neo4j的部署基于Windows平臺2.Neo4j的下載安裝(3)啟動Neo4j服務在Neo4j目錄下打開命令行窗口,即進入Neo4j的bin目錄,在搜索欄中輸入“cmd”提示符,并按一下鍵盤的“Enter”鍵,在當前路徑下打開命令行窗口,如圖所示。

9.3Neo4j的部署基于Windows平臺2.Neo4j的下載安裝(3)啟動Neo4j服務執(zhí)行“neo4j.batconsole”命令,啟動Neo4j,若是命令行窗口出現(xiàn)“Started”,則說明Neo4j服務啟動成功,具體效果如圖所示。

9.3Neo4j的部署基于Windows平臺2.Neo4j的下載安裝(4)通過WebUI界面訪問Neo4j數(shù)據(jù)庫通過瀏覽器訪問網(wǎng)址http://localhost:7474/(本地IP+端口號),進入Neo4j數(shù)據(jù)庫的WebUI界面,效果如圖所示。

9.3Neo4j的部署基于Windows平臺2.Neo4j的下載安裝(4)通過WebUI界面訪問Neo4j數(shù)據(jù)庫從圖中可以看出,第一次訪問Neo4j數(shù)據(jù)需要輸入用戶名和密碼,默認用戶名和密碼均neo4j,單擊【Connect】按鈕,連接數(shù)據(jù)庫,若是連接成功后,會要求修改登錄密碼,這里將登錄密碼修改為itcast,然后單擊【Changepassword】按鈕,修改密碼并進入Neo4j數(shù)據(jù)庫的WebUI主界面。Neo4j數(shù)據(jù)庫的WebUI界面,具體如圖所示。

9.3Neo4j的部署基于Windows平臺2.Neo4j的下載安裝(4)通過WebUI界面訪問Neo4j數(shù)據(jù)庫從“Youareconnectedasuserneo4jtoneo4j://localhost:7687”可以看出,我們成功訪問到Neo4j數(shù)據(jù)庫。WebUI界面主要是由四個部分組成,具體如下:左側(cè)WebUI界面的左側(cè)是一個工具欄面板,面板上有六個按鈕,從上往下分別表示數(shù)據(jù)庫、收藏、文檔、云服務、瀏覽器設置、關于Neo4j。頂部WebUI界面的頂部是一個命令行輸入框,用于執(zhí)行相關命令或Cypher查詢語句,命令行輸入框右側(cè)有三個按鈕,分別表示收藏、清除和執(zhí)行操作。

9.3Neo4j的部署基于Windows平臺2.Neo4j的下載安裝(4)通過WebUI界面訪問Neo4j數(shù)據(jù)庫中部WebUI界面的中間部分是Neo4j的主界面,一共包含三個模塊,分別是StartLearning、WriteCode、MonitorNeo4j,其中StartLearning用于學習和了解Neo4j的基本概念,WriteCode用于創(chuàng)建官方引導實例,Monitor用于監(jiān)控數(shù)據(jù)庫的運行狀態(tài)。底部WebUI界面的底部是Neo4j數(shù)據(jù)庫連接的相關信息。至此,我們完成了基于Windows平臺部署Neo4j數(shù)據(jù)庫。

9.3Neo4j的部署基于Linux平臺由于root用戶擁有的權限很大,處于系統(tǒng)安全的考慮,需要新建一個普通用戶操作Neo4j數(shù)據(jù)庫,因此基于Linux平臺部署Neo4j之前,需要新建一個用戶user_neo4j,并進行授權操作。本教材是在服務器nosql01上部署的Neo4j數(shù)據(jù)庫(注:由于社區(qū)版Neo4j不支持集群部署,因此我們只在服務器nosql01上部署Neo4j),關于用戶user_neo4j的新建和授權操作可參考第3章3.1.2小節(jié)內(nèi)容,這里不再贅述。

9.3Neo4j的部署基于Linux平臺1.JDK的下載安裝(1)通過訪問JDK官網(wǎng)進入JDK版本選擇界面,下載JDK安裝包。本書下載的是jdk1.11版本,即jdk-11.0.6_linux-x64_bin.tar.gz安裝包。(2)上傳并解壓JDK安裝包,通過SecureCRT工具將JDK安裝包上傳至服務器nosql01的/opt/software/目錄下,并修改安裝包的用戶和用戶組權限為user_neo4j,然后解壓到/opt/servers/neo4j_demo目錄(注:需要提前將neo4j_demo目錄的用戶和用戶組權限改為user_neo4j)。解壓安裝包具體命令如下:$tar-zxvfjdk-11.0.6_linux-x64_bin.tar.gz-C/opt/servers/neo4j_demo

9.3Neo4j的部署基于Linux平臺1.JDK的下載安裝執(zhí)行上述指令,解壓完JDK安裝包后,進入到/opt/servers/neo4j_demo目錄,如果覺得解壓后的文件夾名稱過長,可對文件夾重命名,具體命令如下:$mvjdk-11.0.6/jdk(3)配置JDK環(huán)境變量安裝完JDK后,還需要配置JDK環(huán)境變量。這里是將JDK添加到user_neo4j用戶的環(huán)境變量中,執(zhí)行“vi~/.bash_profile”命令,打開.bash_profile文件,在文件底部添加如下內(nèi)容即可。#配置JDK環(huán)境變量exportJAVA_HOME=/opt/servers/neo4j_demo/jdkexportPATH=$PATH:$JAVA_HOME/binexportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

9.3Neo4j的部署基于Linux平臺1.JDK的下載安裝在.bash_profile文件中配置完上述JDK環(huán)境變量后(注意JDK路徑),保存退出。然后,斷開SecureCRT連接,再進行重新連接,最后執(zhí)行“source~/.bash_profile”命令,使配置文件生效。(4)JDK環(huán)境驗證完成JDK的安裝和配置后,為了檢測安裝效果,輸入如下命令進行驗證。$java-version執(zhí)行上述命令后,出現(xiàn)圖9-13的效果說明JDK安裝和配置成功。

9.3Neo4j的部署基于Linux平臺2.Neo4j的下載安裝(1)通過訪問Neo4j官網(wǎng)下載Neo4j,本教材下載的是社區(qū)版Neo4j4.0.3(注:本書會提供neo4j-community-4.0.3-unix.tar.gz安裝包)。(2)上傳并解壓Neo4j安裝包,通過SecureCRT工具將Neo4j安裝包上傳至服務器nosql01的/opt/software/目錄下,然后解壓到/opt/servers/neo4j_demo目錄。解壓安裝包的具體命令如下:$sudotar-zxvfneo4j-community-4.0.3-unix.tar.gz-C/opt/servers/neo4j_demo/執(zhí)行上述指令,解壓完Neo4j安裝包后,進入到/opt/servers/neo4j_demo目錄,如果覺得解壓后的文件夾名稱過長,執(zhí)行“mvneo4j-community-4.0.3neo4j-4.0.3”命令對文件夾進行重命名。

9.3Neo4j的部署基于Linux平臺2.Neo4j的下載安裝(3)配置Neo4j環(huán)境變量安裝完Neo4j后,還需要配置Neo4j環(huán)境變量。這里是將Neo4j添加到user_neo4j用戶的環(huán)境變量中,執(zhí)行“vi~/.bash_profile”命令,打開.bash_profile文件,在文件底部添加如下內(nèi)容即可。#配置Neo4j環(huán)境變量exportNEO4J_HOME=/opt/servers/neo4j_demo/neo4j-4.0.3exportPATH=$PATH:$NEO4J_HOME/bin在.bash_profile文件中配置完上述Neo4j環(huán)境變量后(注意Neo4j路徑),保存退出即可。然后,執(zhí)行“source~/.bash_profile”命令,使配置文件生效。

9.3Neo4j的部署基于Linux平臺2.Neo4j的下載安裝(4)啟動Neo4j服務啟動Neo4j服務共有兩種不同的方式,即前臺啟動Neo4j服務和后臺啟動Neo4j服務,這兩種啟動方式的介紹如下:1)前臺啟動Neo4j服務通過執(zhí)行“neo4jconsole”命令,前臺啟動Neo4j服務,若Neo4j服務端窗口出現(xiàn)“Started”,則說明Neo4j服務啟動成功,效果如圖所示。

9.3Neo4j的部署基于Linux平臺2.Neo4j的下載安裝從圖中可以看出,Neo4j服務端窗口出現(xiàn)了“Started”,因此說明我們成功啟動Neo4j服務。若是想要關閉Neo4j服務,只需要通過鍵盤組合鍵“Ctrl+c”關閉服務端窗口即可。2)后臺啟動Neo4j服務通過執(zhí)行“neo4jstart”命令,后臺啟動Neo4j服務,再執(zhí)行“neo4jstatus”命令,查看Neo4j服務的狀態(tài),如圖所示。

9.3Neo4j的部署基于Linux平臺2.Neo4j的下載安裝從圖中可以看出,執(zhí)行“neo4jstatus”命令后,出現(xiàn)了“Neo4jisrunningatpid2691”,因此說明我們成功啟動Neo4j服務。若是想要關閉Neo4j服務,可以執(zhí)行“neo4jstop”命令,關閉Neo4j服務即可。(5)通過WebUI界面訪問Neo4j數(shù)據(jù)庫通過瀏覽器訪問網(wǎng)址34:7474/或http://nosql01:7474/,進入Neo4j的WebUI界面。訪問前,先修改/opt/servers/neo4j_demo/neo4j-4.0.3/conf/目錄下的配置文件neo4j.conf,將“#dbms.default_listen_address=”和“#dbms.default_advertised_address=localhost”中的注釋符“#”去掉,并指定主機IP,這里的主機IP是34;再執(zhí)行“neo4jrestart”命令,重啟Neo4j服務;然后訪問網(wǎng)址并進入WebUI界面。Neo4j數(shù)據(jù)庫的登錄界面,如圖所示。

9.3Neo4j的部署基于Linux平臺2.Neo4j的下載安裝從右圖可以看出,第一次訪問Neo4j數(shù)據(jù)需要輸入用戶名和密碼,默認用戶名和密碼均neo4j,單擊【Connect】按鈕,連接數(shù)據(jù)庫,若是連接成功后,會要求修改登錄密碼,這里將登錄密碼修改為itcast,然后單擊【Changepassword】按鈕,修改密碼并進入Neo4j數(shù)據(jù)庫的WebUI主界面。Neo4j數(shù)據(jù)庫的WebUI界面,如圖所示。

9.3Neo4j的部署基于Linux平臺2.Neo4j的下載安裝從圖中的“Youareconnectedasuserneo4jtoneo4j://34:7687”可以看出,我們成功訪問到Neo4j數(shù)據(jù)庫。

9.4Neo4j的操作Neo4j的Cypher操作Cypher是圖形存儲數(shù)據(jù)庫Neo4j的查詢語言,Cypher是通過模式匹配Neo4j數(shù)據(jù)庫中的節(jié)點和關系,從而對數(shù)據(jù)庫Neo4j中的節(jié)點和關系進行一系列的相關操作。下面,通過一張表來介紹一下常用的Neo4j操作命令及相關說明,具體如表所示。操作命令相關說明CREATE創(chuàng)建節(jié)點、關系MATCH查找所有符合給定模式的節(jié)點、關系以及屬性數(shù)據(jù)RETURN返回查詢結果WHERE過濾條件,篩選出符合條件的數(shù)據(jù)DELETE永久刪除節(jié)點和關系REMOVE刪除節(jié)點的屬性

9.4Neo4j的操作Neo4j的Cypher操作CREATE命令1使用CREATE命令創(chuàng)建節(jié)點、關系,具體語法如下:#創(chuàng)建帶有標簽的節(jié)點CREATE(<node-name>:<label-name>)#創(chuàng)建帶有標簽、屬性的節(jié)點CREATE(<node-name>:<label-name>{<property-name>:<property-value>})#創(chuàng)建帶有標簽的關系CREATE(<node1-name>:<label1-name>)-[(<relationship-name>: <relationship-label-name>)]->(<node2-name>:<label2-name>)

9.4Neo4j的操作Neo4j的Cypher操作CREATE命令1上述語法中,CREATE是創(chuàng)建節(jié)點、關系的命令;<node-name>表示節(jié)點名稱,Neo4j使用此名稱將該節(jié)點的詳細信息存儲在Database.As中,用作Neo4j數(shù)據(jù)庫管理(注:不能使用節(jié)點名稱來訪問節(jié)點的詳細信息);<label-name>表示標簽名稱,是內(nèi)部節(jié)點名稱的別名(注:可使用標簽名稱訪問節(jié)點的詳細信息);<property-name>表示屬性名;<property-value>表示屬性值;<relationship-name>表示關系;<relationship-label-name>表示關系的標簽。

9.4Neo4j的操作Neo4j的Cypher操作CREATE命令1下面,我們演示創(chuàng)建一個節(jié)點p,其中標簽為Person、屬性分別為“name、age、hobby”、屬性值分別為“Bob、22、godancing”,具體如下:$create(p:Person{name:'Bob',age:22,hobby:'godancing'})執(zhí)行上述命令后,WebUI界面的控制臺返回“Added1label,created1node,set3properties,completedafter2ms.”信息,說明我們新增一個標簽、創(chuàng)建一個節(jié)點,并設置了三個屬性。

9.4Neo4j的操作Neo4j的Cypher操作CREATE命令1下面,我們演示創(chuàng)建標簽為Likes的關系friend,其中起始節(jié)點為Jac、屬性name為Jack,結束節(jié)點為Emm、屬性name為Emma,具體如下:$create(Jac:Person{name:'Jack'})-[friend:Likes]->(Emma:Person{name:'Emma'})執(zhí)行上述命令后,WebUI界面的控制臺返回“Added2labels,created2nodes,set2properties,created1relationship,completedafter9ms.”信息,說明我們新增兩個標簽、創(chuàng)建兩個節(jié)點、設置兩個屬性、創(chuàng)建一個關系(注意:標簽Person是節(jié)點的標簽;標簽Likes是關系的標簽)。

9.4Neo4j的操作Neo4j的Cypher操作MATCH命令2使用MATCH命令查找所有符合給定模式的節(jié)點、關系以及屬性數(shù)據(jù),具體語法如下:MATCH(<node-name>:<label-name>)上述語法中,MATCH用于查找所有符合給定模式的節(jié)點、關系以及屬性數(shù)據(jù)的命令;<node-name>表示節(jié)點名稱;<label-name>表示標簽名稱。下面,演示查找數(shù)據(jù)庫中標簽為Person節(jié)點p的詳細信息,具體如下:$match(p:Person)執(zhí)行上述命令后,查看WebUI界面控制臺的返回結果,如圖所示。從圖中可看出是語法錯誤,若想要使用MATCH命令,則需要與RETURN命令或更新命令結合使用。

9.4Neo4j的操作Neo4j的Cypher操作RETURN命令3使用RETURN命令返回查詢結果,具體語法如下:RETURN(<node-name>:<property-name>)上述語法中,RETURN是用于返回查詢結果的命令;<node-name>表示節(jié)點名稱;<property-name>表示屬性名。下面,我們演示返回屬性為age的節(jié)點p的所有信息,具體如下:$returnp.age執(zhí)行上述命令后,查看WebUI界面控制臺的返回結果,具體如圖所示。從圖中可看出是語法錯誤,若想要使用RETURN命令,則需要與METCH命令或CREATE命令結合使用。

9.4Neo4j的操作Neo4j的Cypher操作RETURN命令3下面,我們演示查詢數(shù)據(jù)庫中節(jié)點p的詳細信息,具體如下:$match(p:Person)return,p.age,p.hobby執(zhí)行上述命令后,查看WebUI界面控制臺的返回結果,具體如圖所示。從圖中可看出,節(jié)點p擁有三個屬性分別為name、age、hobby,屬性值有三行,分別為Bob、22、godancing,Jack、null、null,Emma、null、null。若想要使用RETURN命令,則需要與METCH命令或CREATE命令結合使用。

9.4Neo4j的操作Neo4j的Cypher操作RETURN命令3下面,我們演示查詢數(shù)據(jù)庫中所有節(jié)點的詳細信息,具體如下:$match(n)returnn執(zhí)行上述命令后,查看WebUI界面控制臺的返回結果,具體如圖所示。從圖中可看出,節(jié)點p擁有三個屬性分別為name、age、hobby,屬性值有三行,分別為Bob、22、godancing,Jack、null、null,Emma、null、null。若想要使用RETURN命令,則需要與METCH命令或CREATE命令結合使用。

9.4Neo4j的操作Neo4j的Cypher操作RETURN命令3下面,我們演示查詢數(shù)據(jù)庫中所有節(jié)點的詳細信息,具體如下:$match(n)returnn執(zhí)行上述命令后,查看WebUI界面控制臺的返回結果,具體如圖所示。從圖中可以看出,Neo4j數(shù)據(jù)庫中擁有三個節(jié)點,分別為Jack、Emma、Bob,其中Emma和Jack是Likes關系。若是想要查看各個節(jié)點的屬性和標簽,則可以單擊選中的節(jié)點進行查看,節(jié)點的信息會展示至控制臺的最底部。

9.4Neo4j的操作Neo4j的Cypher操作WHERE命令4使用WHERE命令查詢符合條件的數(shù)據(jù),具體語法如下:WHERE<condition>上述語法中,WHERE是用于查詢符合條件的數(shù)據(jù)命令,該命令需要與MATCH命令和RETURN命令結合使用;<condition>表示查詢的條件。下面,演示查詢符合條件“='Bob'”的節(jié)點詳細信息,具體如下:$match(p:Person)where='Bob'returnp

9.4Neo4j的操作Neo4j的Cypher操作WHERE命令4執(zhí)行上述命令后,查看WebUI界面控制臺的返回結果,如圖所示。從圖中可看出,標簽Person中屬性name為Bob節(jié)點的詳細信息。即節(jié)點p具有三個屬性,分別是name、age以及hobby,對應的值分別是Bob、22以及godancing。

9.4Neo4j的操作Neo4j的Cypher操作DELETE命令5使用DELETE命令永久的刪除節(jié)點或關系,具體語法如下:上述語法中,DELETE是用于永久刪除節(jié)點或關系的命令,該命令需要與MATCH命令結合使用;<node-name-list>表示節(jié)點名稱列表;<relationship-name>表示關系名稱。#刪除節(jié)點DELETE<node-name-list>#刪除節(jié)點及關聯(lián)的關系DELETE<node1-name>,<node2-name>,<relationship-name>

9.4Neo4j的操作Neo4j的Cypher操作DELETE命令5下面,我們演示刪除屬性name為Bob的節(jié)點,具體如下:執(zhí)行上述命令后,WebUI界面的控制臺返回“Deleted1node,completedafter2ms.”信息,則說明我們刪除一個節(jié)點。執(zhí)行“match(p:Person)returnp”命令,然后查看WebUI界面控制臺的返回結果,如圖所示。$match(p{name:'Bob'})deletep

9.4Neo4j的操作Neo4j的Cypher操作DELETE命令5從圖中可以看出,Neo4j數(shù)據(jù)庫中已經(jīng)不存在屬性name為Bob的節(jié)點了,因此說明屬性name為Bob的節(jié)點已經(jīng)被成功刪除。若是想要清空數(shù)據(jù)庫中的節(jié)點或者關系,則可以執(zhí)行“match(n)detachdeleten”命令,但是該命令要慎用。下面,我們演示刪除屬性name分別為Jack和Emma的節(jié)點以及相關聯(lián)的關系,具體如下:$match(Jac{name:'Jack'})-[friend]->(Emm{name:'Emma'})deleteJac,Emm,friend執(zhí)行上述命令后,WebUI界面的控制臺返回“Deleted2nodes,deleted1relationship,completedafter3ms.”信息,說明我們刪除兩個節(jié)點、一個關系。

9.4Neo4j的操作Neo4j的Cypher操作DELETE命令5執(zhí)行“match(Jac:Person)-[friend]->(Emm:Person)returnfriend”命令,然后查看WebUI界面控制臺的返回信息,即“(nochanges,norecords)”,說明屬性名分別為Jack和Emma的節(jié)點以及關系friend均被成功刪除。

9.4Neo4j的操作Neo4j的Cypher操作REMOVE命令6使用REMOVE命令刪除節(jié)點的屬性,具體語

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論