neo4j



CY:

MATCH  (n:Device) <-[r:BINDDEVICE] - (m:User) where  n.deviceId = "yp_waigu"   return count(m) 
node

1、圖數據庫neo4j介紹:

Neo4j是一個嵌入式,基於磁盤的,支持完整事務的Java持久化引擎,它在圖(網絡)中而不是表中存儲數據。算法

Neo4j提供了大規模可擴展性,在一臺機器上能夠處理數十億節點/關係/屬性的圖,能夠擴展到多臺機器並行運行。相對於關係數據庫來講,圖數據庫善於處理大量複雜、互鏈接、低結構化的數據,這些數據變化迅速,須要頻繁的查詢——在關係數據庫中,這些查詢會致使大量的錶鏈接,所以會產生性能上的問題。數據庫

Neo4j重點解決了擁有大量鏈接的傳統RDBMS在查詢時出現的性能衰退問題。經過圍繞圖進行數據建模,Neo4j會以相同的速度遍歷節點與邊,其遍歷速度與構成圖的數據量沒有任何關係。數組

此外,Neo4j還提供了很是快的圖算法、推薦系統和OLAP風格的分析,而這一切在目前的RDBMS系統中都是沒法實現的。
網絡

2、節點和關係

Neo4j 中最基本的概念是節點(node)和關係(relationship)。性能

節點表示實體,由org.neo4j.graphdb.Node 接口來表示。在兩個節點之間,能夠有不一樣的關係。code

關係由org.neo4j.graphdb.Relationship 接口來表示。每一個關係由起始節點、終止節點和類型等三個要素組成。起始節點和終止節點的存在,說明了關係是有方向,相似於有向圖中的邊。不過在某些狀況,關係的方向可能並無意義,會在處理時被忽略。全部的關係都是有類型的,用來區分節點之間意義不一樣的關係。在建立關係時,須要指定其類型。關係的類型由 org.neo4j.graphdb.RelationshipType 接口來表示。接口

節點和關係均可以有本身的屬性。每一個屬性是一個簡單的名值對。屬性的名稱是 String 類型的,而屬性的值則只能是基本類型、String 類型以及基本類型和 String 類型的數組。一個節點或關係能夠包含任意多個屬性。事務

相關文章
相關標籤/搜索