标签: neo4j

如何在图形数据库(如Neo4j)中建立真实世界的关系?

我有一个关于在图形数据库中建模的一般性问题,我似乎无法解决这个问题.

你如何模拟这种关系:"牛顿发明了微积分"?

在一个简单的图表中,您可以像这样建模:

Newton (node) -> invented (relationship) -> Calculus (node)
Run Code Online (Sandbox Code Playgroud)

...所以当你添加更多的人和发明时,你会有一堆"发明的"图形关系.

问题是,你开始需要在关系中添加一堆属性:

  • invention_date
  • influential_concepts
  • influential_people
  • books_inventor_wrote

...并且您将要开始在这些属性和其他节点之间创建关系,例如:

  • influential_people:与人节点的关系
  • books_inventor_wrote:与书籍节点的关系

所以现在似乎"真实世界的关系"("发明")实际上应该是图中的一个节点,图形应如下所示:

Newton (node) -> (relationship) -> Invention of Calculus (node) -> (relationship) -> Calculus (node)
Run Code Online (Sandbox Code Playgroud)

更复杂的是,其他人也参与了微积分的发明,所以图形现在变成了:

Newton (node) -> 
  (relationship) -> 
    Newton's Calculus Invention (node) -> 
      (relationship) -> 
        Invention of Calculus (node) -> 
          (relationship) -> 
            Calculus (node)
Leibniz (node) -> 
  (relationship) -> 
    Leibniz's Calculus Invention (node) -> 
      (relationship) -> 
        Invention of Calculus (node) -> 
          (relationship) -> 
            Calculus (node) …
Run Code Online (Sandbox Code Playgroud)

neo4j nosql graph-databases

19
推荐指数
1
解决办法
3779
查看次数

找到具有多个传入关系的neo4j节点

我正在尝试找到具有多个传入关系的所有节点.鉴于此数据:

a-[has]->b
a-[has]->c
d-[has]->b
Run Code Online (Sandbox Code Playgroud)

所以,我正在寻找一个返回'b'的查询,因为它有更多的传入.

此查询已结束.它返回'a'和'b',因为它们都有2个关系:

match (n)--()
with n,count(*) as rel_cnt
where rel_cnt > 1
return n;
Run Code Online (Sandbox Code Playgroud)

但是,此查询(添加' - >')不返回任何内容,我不知道原因:

match (n)-->()
with n,count(*) as rel_cnt
where rel_cnt > 1
return n;
Run Code Online (Sandbox Code Playgroud)

我错了吗?

neo4j cypher

19
推荐指数
1
解决办法
1万
查看次数

如何使用cypher请求获取节点的id?

我正在使用neo4j并执行此查询:

MATCH (n:Person) RETURN n.name LIMIT 5
Run Code Online (Sandbox Code Playgroud)

我得到的名字,但我也需要ids.请帮忙!

neo4j cypher

19
推荐指数
1
解决办法
1万
查看次数

你如何退出Neo4j Web管理控制台

使用Neo4J v2.2.3社区版.

从内部Web管理控制台有没有人知道任何退出方式?

neo4j

19
推荐指数
1
解决办法
7472
查看次数

获取具有密码的节点的所有关系

我想找出一个节点的所有传入和传出关系.我在其他问题中尝试了几个问题,但没有太多运气.这是我试过的两个

MATCH (a:User {username: "user6"})-[r*]-(b)
RETURN a, r, b
Run Code Online (Sandbox Code Playgroud)

我只有500个节点,它永远运行.一小时后我放弃了.

我试过这个

MATCH (c:User {username : 'user6'})-[r:*0..1]-(d)
WITH c, collect(r) as rs
RETURN c, rs
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个错误

WARNING: Invalid input '*': expected whitespace or a rel type name (line 1, column 35 (offset: 34))
"MATCH (c {username : 'user6'})-[r:*0..1]-(d)"
Run Code Online (Sandbox Code Playgroud)

获得节点的所有关系的正确方法是什么?

我正在使用3.0.3版

neo4j cypher

19
推荐指数
4
解决办法
3万
查看次数

将Neo4j DB转换为XML?

我可以将Neo4J数据库文件转换为XML吗?

neo4j

18
推荐指数
3
解决办法
6814
查看次数

将Neo4j子图加载到Networkx中

我一直在通过python的Bulbflow处理Neo4j,现在需要一种方法来保存/导出子图.我已经看过Java甚至Ruby的方法,但是一个简单的Python方法似乎隐藏了我...

到目前为止,我找到了两条潜在的途径:

  1. 通过py2neo访问Geoff,但是从大型本地neo4j数据库或neo4jserver中提取子图的文档很少令人惊讶.

  2. 使用Networkx:我发现networkx可以加载来自多种不同格式的图形(我不确定neo4j存储它们的dbs的格式),但是我还没有找到一种方法只将一个子图提取到Networkx中.我认为这应该从gremlin查询完成,但我不知道如何去做.

我偏爱Networkx路径,因为它还附带了我希望应用于子图的网络分析算法.我觉得它也可以避免Bulbflow和py2neo之间的潜在冲突,虽然我不确定是否会存在这样的冲突.

任何建议将不胜感激!

提前致谢

python subgraph neo4j graph-databases networkx

18
推荐指数
1
解决办法
3148
查看次数

在CREATE和MATCH之间需要Neo4j Cypher WITH

我想在浏览器控制台上同时执行多个查询,这是我的请求:

CREATE (newNode1:NEW_NODE)
CREATE (newNode2:NEW_NODE)
MATCH (n1:LABEL_1 {id: "node1"}) CREATE (newNode1)-[:LINKED_TO]->(n1)
MATCH (n2:LABEL_2 {id: "node2"}) CREATE (newNode2)-[:LINKED_TO]->(n2)
Run Code Online (Sandbox Code Playgroud)

当我逐个执行它们没有问题,但是当我同时执行它们时,我得到以下错误:在CREATE和MATCH之间需要WITH

有没有办法纠正这个?

neo4j cypher

18
推荐指数
1
解决办法
9056
查看次数

什么时候不使用neo4j?

Neo4j是一个很好的映射关系数据的工具,但我很好奇在什么条件下它不是一个好的工具.

在哪些用例中使用neo4j是一个坏主意?

neo4j graph-databases

18
推荐指数
1
解决办法
6188
查看次数

ORM与Graph-Databases如Python中的Neo4j

我想知道有一个ORM与图数据库(fe Neo4j)的解决方案(或需要).我跟踪关系(A与B相关,它与A通过C等相关,从而构建一个大图)实体(包括那些实体的附加属性)并需要将它们存储在DB中,我认为图形数据库完全适合这项任务.

现在,对于类似sql的数据库,我使用sqlalchemyśORM来存储我的对象,特别是因为我可以从数据库中检索对象并以pythonic样式使用它们(使用它们的方法等).

Neo4j或其他Graph-DB是否有任何对象映射解决方案,以便我可以在Graph-DB中存储和检索python对象并轻松使用它们?

或者你会编写一些函数或适配器,如python sqlite文档(http://docs.python.org/library/sqlite3.html#letting-your-object-adapt-itself)来检索和存储对象?

python orm neo4j graph-databases bulbs

17
推荐指数
3
解决办法
6379
查看次数

标签 统计

neo4j ×10

cypher ×4

graph-databases ×4

python ×2

bulbs ×1

networkx ×1

nosql ×1

orm ×1

subgraph ×1