我正在尝试automake
使用OrientDb C++库,但是遇到了一些错误.
Makefile.am:10: error: Libtool library used but 'LIBTOOL' is undefined
Makefile.am:10: The usual way to define 'LIBTOOL' is to add 'LT_INIT'
Makefile.am:10: to 'configure.ac' and run 'aclocal' and 'autoconf' again.
Makefile.am:10: If 'LT_INIT' is in 'configure.ac', make sure
Makefile.am:10: its definition is in aclocal's search path.
Run Code Online (Sandbox Code Playgroud)
https://github.com/tglman/orientdb-c
https://github.com/tglman/orientdb-c/wiki/Install
我已经定义了configure.ac和Makefile.am.
我运行以下autotools
aclocal会
和autoheader
automake的:
libtool(GNU libtool)2.4.2
configure.ac
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
AC_INIT([orientdb-c],[0.9])
AC_CONFIG_SRCDIR([src/o_query_internal.h])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE()
# …
Run Code Online (Sandbox Code Playgroud) 如何在oriento中选择或更新多个记录?就像我在水线一样
offersModel.update({id:items_ids,status:INACTIVE},{status:ACTIVE})
Run Code Online (Sandbox Code Playgroud)
但在水线交易不可用.所以我想用:
var db = offersModel.getDB();
var trans = db.begin();
trans.update('offers')
.set({status:INACTIVE})
.where({id:items_ids,status:ENM.SELLING_STATUS.ACTIVE})//.exec()
.then(function(offers){
if (offers.length != items_ids.length) {trans.rollback(); /* send error here*/}
else trans.commit();
})
Run Code Online (Sandbox Code Playgroud)
谢谢.
我知道Stackoverflow上有类似的问题,但我觉得他们没有回答以下问题.
图表数据库对我的理解存储数据主要遵循以下模式:
Table/Collection 1: store nodes with UID
Table/Collection 2: store relations referencing nodes via UID
Run Code Online (Sandbox Code Playgroud)
这允许存储任意类型的图形.现在据我所知,三重商店只存储三元组:
Triple/Collection 1: store triples (2 nodes, 1 relation)
Run Code Online (Sandbox Code Playgroud)
现在我将看到有关用例的以下区别:
我很困惑的是,人们似乎根据这些标准没有讨论使用哪一个.我发现的大多数文章都在谈论速度或兼容性等论点.但这不是最重要的一点吗?
反过来说:
subject
.编辑:我看到"失去关于连接的信息"是错误的方式.如果您按照接受的答案中所示执行操作并为2个节点+ 1个关系插入多个三元组,那么您将保留所有信息,特别是信息确切的节点连接的信息.
我目前正处于MMO浏览器游戏的设计阶段,游戏将包括一些实时位置的瓦片地图(因此每个单元格的瓦片数据)和一般世界地图.我更喜欢使用MongoDB进行持久数据世界的游戏引擎.
我还将实现一个运输模拟(我将在下面详细解释),它基本上是一个Dijkstra模块,我已经决定使用图形数据库,希望它能让事情变得更容易,因为它很受欢迎.
我对MongoDB + Neo4J设置感到满意,但后来注意到了OrientDB,它看起来像MongoDB和Neo4J(两者都是最好的?),甚至还有MongoDB和Neo4J的VS页面.
重点是,我听到一些关于MongoDB丢失数据的恐怖故事(尽管不确定它仍然存在)并且我没有这样的奢侈品.而对于Neo4J,我不是每年12K€的"忠实启动"成本的忠实粉丝,尽管我可能没有数百万的顶点数据库.OrientDB似乎是一个可行的选择,因为可能还有一些使用一个数据库解决方案的机会.
在这种情况下,一个逻辑移动可能会跳转到OrientDB,但它有一个小社区,并且没有找到很多关于它的评论,MongoDB和Neo4J是广泛使用的流行工具,我担心如果OrientDB是冒险.
我的第一个问题是,如果您对这些数据库有任何经验/意见.
而第二个问题是其图形数据库是一个航运仿真更好.使用数据库有望计算从任何顶点到任何顶点的最便宜路线并遍历它(经典Dijkstra).但也必须根据"国家B对国家A禁运的情况改变权重,因此任何来自A国的物品都不能通过B,在XYZ地区有洪水,因此无法进行陆路运输"等.此外,该数据库预计会缓存结果.我希望不超过1000个顶点,但边缘很多.
如果问题有点含糊,请提前致谢并提前道歉
PS:我在标题上添加了ArangoDB,但是没有太多机会去看看.
截至2016年4月18日的后期编辑:在评估了对我的问题和发展策略的反应之后,我决定使用ArangoDB,因为他们的路线图对我来说更有希望,因为他们显然没有尝试添加大量半炒的炒作功能.
我希望能够进入多模型DBMS的世界,我没有特别的用例,只想开始学习.
我发现有两个突出的东西 - OrientDB与ArangoDB,但无法找到任何有意义的比较,在它们之间不受影响.有人能否解释两者之间的功能差异,以及使用其中一个的警告?如果我学会了一个,我能够轻松过渡到另一个吗?
(我也标记了FoundationDB,但它是专有的,我可能不会考虑它)
这个问题要求对想要了解多模型DBMS的人进行 OrientDB与ArangoDB之间的一般比较,而不是关于哪个更好的自以为是的答案.
database orientdb arangodb foundationdb multi-model-database
我正在尝试让OrientDB Studio显示一个字符串作为每个节点的标签,就像Susheel Kumar的截图一样
但是,当我运行Susheel的代码(下面发布的后代代码)时,所有节点都显示为其@rid字段标记,如此屏幕截图:
问题:是否有自动显示所有这些标签的方法?
我可以通过单击(1)节点,(2)"眼睛"符号,(3)设置符号,然后从下拉菜单中选择"名称",告诉单个节点将其"名称"字段显示为标签,但是当我拥有大量节点时,这是不可能的.这似乎是在定义"Person"节点类时你要做的事情,但我在Susheel的代码(下面发布)中没有看到这个,并且我无法联系到他.
对于我的应用程序,如果我无法可视化节点标签,可视化基本上是无用的,所以任何帮助将非常感激:)
下面是我从Susheel的OrientDB简介中获取的代码,用于制作我的截图:
-- Create a class Person and add two properties lastName & firstName using below commands create class Person extends V; create property Person.lastName string; create property Person.firstName string; -- Create a class Employee which extends from Person & add few properties to it create class Employee extends Person; create property Employee.empno integer; create property Employee.sal integer; -- Create a class Department extends from V create class Department extends V; create …
在今天可以使用图形数据库解决的Web环境中,可以遇到的问题是什么?图形数据库是否适用于经典应用程序,即可以用作关系数据库的替代品吗?所以实际上这是两个问题.
我没有想法,希望得到一些有用的意见.我正在使用这个问题来压缩我的经验并分享它们,希望激励一些经销商进一步将图形数据库建模作为一流的问题/方式.
我已经验证了node.js可以使用的一些图形数据库解决方案几周.我的用例是保存不同社交用户网络帐户的交互.需要以最有效的方式使用CPU和内存.
我最重要的要求是:
Neo4j的
我真的很喜欢密码,所以我最好的选择是Neo4j.但是关于Neo4j的主要问题是JavaScript访问是非原生的.它使用的REST-API 比直接Java访问慢大约十倍(10倍).所以我看了一下node-neo4j-embedded,但它已经处于非活动状态超过两年了.看起来它的作者根本不活跃(坏迹象).
ArangoDB
ArangoDB非常好的核心开发人员回答了我关于内部的问题.最后,它意味着JavaScript是一流的公民,因为本机查询可以被推出JS.看看开源基准测试,我认为这是公平的.但我担心他们没有使用node-neo4j-embedded作为他们的基准.基准测试比较REST-API(由于@weinberger评论而编辑).我希望他们比较本机API(也许有人足够snoopy并尝试一下! - 让我们知道!).更新:正如我现在注意到的那样,OrientDB 用新的node.js驱动程序回答了基准测试(通过启动服务器使用命令高速缓存)-Dcommand.cache.enabled = true -Dcommand.cache.minExecutionTime = 3,什么是不公平的,因为它不是查询缓存基准!)
因为我喜欢使用ArangoDB作为图形数据库,所以我有3个选择(来源:FAQ):
一般来说,它像cypher一样不舒服.我不确定如何比较以及建模数据的正确方法(如Neo4J解释得很好).我很想为ArangoDB Graphs提供类似的东西.感觉ArangoDB专注于图形操作,如果你有更多的关系而不是行,Neo4J更符合使用图形的需要(使用图形而不是连接关系的原因).
MongoDB的
基于文档的MongoDB没有针对图形操作进行优化,但后来获得了实验性的内存存储引擎.还有一些项目是in_memory或图形相关,但没有什么是真正引人注目的.在本次讨论中,看起来MongoDB并不是我喜欢使用的.
OrientDB
因为有一个关于OrientDB和MongoDB的比较(来自OrientDB),我虽然即将使用这个." OrientDB有一个混合的Document-Graph引擎 …
我们正在使用Nexus Repository版本3.2.0-01并开始在nexus.log中收到以下错误.OrientDB已损坏.Nexus不再开始了.
2017-03-21 13:00:36,329+0000 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.internal.orient.DatabaseServerImpl - OrientDB version: 2.2.13
2017-03-21 13:00:36,348+0000 INFO [FelixStartLevel] *SYSTEM com.orientechnologies.orient.server.OServer - OrientDB Server v2.2.13 is starting up...
2017-03-21 13:00:36,355+0000 INFO [FelixStartLevel] *SYSTEM com.orientechnologies.orient.server.OServer - Databases directory: /c9/setup/apps/nexus/sonatype-work/nexus3/db
2017-03-21 13:00:36,647+0000 WARN [FelixStartLevel] *SYSTEM com.orientechnologies - Not enough physical memory available for DISKCACHE: 1,873MB (heap=1,161MB direct=2,048MB). Set lower Maximum Heap (-Xmx setting on JVM) and restart OrientDB. Now running with DISKCACHE=256MB
2017-03-21 13:00:36,648+0000 INFO [FelixStartLevel] *SYSTEM com.orientechnologies - OrientDB config DISKCACHE=256MB (heap=1,161MB direct=2,048MB os=1,873MB) …
Run Code Online (Sandbox Code Playgroud)