使用MongoDB的和Neo4j的共同(Using MongoDB and Neo4j togeth

2019-08-17 05:22发布

我开始一个新项目,我期待在使用MongoDB中的文档存储设施和的Neo4j的机制来映射文档之间的关系,然后我想通过其他API来暴露我查询的结果。 什么将一个说是做这种方式的优点和缺点? 是否有实现这一目标可能使用不同的NoSQL文档存储的任何更好的方法? 是否有一个例子可以在网上找到如果有人试图做同样的事情?

Answer 1:

我一直在想,因为我的数据已经在MongoDB中使用这两个在一起了一段时间。 但我不希望添加的现有架构的一个更DB之上,因为另外的Neo4j将需要更多的资源如内存,磁盘空间和更何况投资保持2个DB的时间。

这是我能想到的另一个问题是,当你用MongoDB的分片数据,您还必须管理你的Neo4j数据WRT这些新的碎片。 缩放在Neo4j的是通过集群完成的,这是企业版的一部分,这是商业。

我做了进一步的研究和发现, OrientDB可以存储的数据如文档和图表分贝。

另一种方式是建立在MongoDB中本身的关系,写最重要的是你的逻辑,并通过REST API公开这个逻辑。



Answer 2:

如果你喜欢的Neo4j,你应该看看Structr( https://github.com/structr/structr , http://structr.org )。

随着Structr,您可以定义的Neo4j的顶部自定义模式(在Java中,或先从0.7,甚至通过UI),它会创建一个(几乎)生产就绪的RESTful API JSON你。

JSON的“文件”是由Structr在实时飞行的任何种类的Neo4j的子图的集合或映射的创建。 这允许您定义对同一数据不同的看法任意数量。

Structr具有内置的功能,例如搜索(全文,关键字/确切,位置范围瓦特/ Neo4j的空间),分页,排序,约束,用户/组,访问控制,类似cron后台作业,维护命令,以及补充(测试版)的用户界面的CRUD操作和基本的CMS功能。

免责声明:我Structr的创始人。



Answer 3:

你可能会感兴趣的Neo4j的文件管理器为蒙戈连接器 。 这是一个扩展,蒙戈连接器项目,允许数据从MongoDB中到Neo4j的实时单向同步。 插入MongoDB中的文件被转换为一个属性图表和自动插入到Neo4j的。 收集和字段从蒙戈被同步到Neo4j的可配置。

这里的想法是在单个应用程序中使用的Neo4j和MongoDB一起以方便而不必在应用层将数据同步到编写代码。



Answer 4:

我们结束了使用的Neo4j作为一个“指数”做路由计算(在巴士/火车搜索)。 数据的散装储存在MongoDB中。 我们使用MongoConnector,以此来两个数据库同步。 蒙戈优于用于操纵原始JSON数据。

我们试图存储Neo4j的“一切”最初,但随后的查询开始采取+2分钟,所以以后我们只保存最小数据必要的。 此外,Neo4j的对你所能指标限制。 例如,他们没有“日期”类型,所以范围查询日期是累赘。 另外你遇到问题时,你有一个“超级节点”,拥有数千或成千上万的链接(关系)百元节点。 关系存储在Neo4j的链接列表,所以随机存取即可(用于查找关系)非常缓慢。

你必须要挑剔你如何使用的Neo4j,最后我们把它用于最短路径计算/搜索,这是Neo4j的的实力。

有关详细信息,在结帐纽约GraphConnect 2013视频和我们的研究结果的呈现: https://vimeo.com/79477603



Answer 5:

我想看看小鬼。

看看这篇文章: http://thinkaurelius.com/2013/02/04/polyglot-persistence-and-query-with-gremlin/我个人觉得Groovy的语法真棒处理数据时。



Answer 6:

在Neo4j的你应该建立你的关系,例如,如果你有2个用户在MongoDB中,如果一个跟着另一个你应该在Neo4j的节点的关系,而不是再拍收藏与信息。 你应该使用2个数据库为一体。



文章来源: Using MongoDB and Neo4j together