我们使用ArangoDB和PostgreSQL来存储几乎相同的数据。PostgreSQL用于执行一般类型的查询,关系数据库可以很好地执行这些查询。ArangoDB被选中来执行一些查询,如图遍历、查找最短路径等。
目前,我们有一个在PostgreSQL中有160000条记录的表,还有一个在ArangoDB中具有相同数量文档的集合。
我们正在开发的API将同时被多个用户使用,所以我首先要检查的是ArangoDB和PostgreSQL在负载下的性能。我创建了一个简单的负载测试,它作为一个工作负载使用ArangoDB和PostgreSQL的过滤器执行一个简单的select查询。
查询使用筛选器by d
我正在考虑arangoDB的图形搜索。
我有两个收藏,一个是人,另一个是电影,我在人和电影之间做了一个图表。
当我像下面这样插入查询
FOR p IN people
FOR m In movie
FILTER p.movieName == m.title
INSERT {_from:p._id, _to:m._id} IN peopleAndMovieRelation
当我查询上述查询时,我无法访问peopleAndMovieRelation边缘集合。在查询完成后,我可以访问它。
当插入数据时,ArangoDB是否使用集合锁?
我在MySQL中有一个触发器,它在插入行时执行PHP文件,这是触发器:
AFTER INSERT ON \glpi_tickets \
FOR EACH ROW BEGIN\``
BEGIN
DECLARE result INT;
SET result = (select sys_exec('C:/xampp/php/php.exe C:/xampp/htdocs/lar/query.php'));
END
在PHP文件中,我使用以下查询查询最后一个ID:
SELECT MAX(\id\) FROM glpi_tickets;
但是我在刚刚插入的行之前获得了ID,即使触
我有一个关于arangodb中事务的问题,如果我在AQL查询下运行,它将作为一个事务执行还是会被分成两个事务?我的后台是php:
LET r1 = (FOR u IN Users UPDATE u WITH { status: "inactive" } IN Users)
LET r2 = (FOR b IN Blogs UPDATE b WITH { status: "inactive" } IN Blogs)
RETURN true
目前我使用的是arangodb文档建议的事务(使用javascript代码),但如果可以使用AQL query,我更愿意从ph
我正在为ArangoDB使用java驱动程序。我在一个字符串变量中有一个JSON数组,我希望它被插入到表中。我使用以下查询
for r in @fromCollection insert r into @targetCollection
在web接口中,插入很好,但是在Java中,我在绑定这两个变量时遇到了麻烦-
1553 - ERROR_QUERY_BIND_PARAMETER_TYPE
Will be raised when a bind parameter has an invalid value or type
您能帮助我将集合名绑定为ArangoDB中的变量吗?
我有一个ArangoDB函数,它在instanceCollection中查询databasehelper.js中的所有documents
listInstances = function listInstances() {
var instances = db.query(aqlQuery`
FOR doc in instanceCollection
RETURN doc
`).then(
cursor => cursor.all()
).then(
result => {
return
我目前正在为ArangoDB (Connect)开发一个会话存储。它的工作原理与MongoDB会话存储几乎相同(connect,因此也就是“connect”),但问题是ArangoDB没有为其条目内置一个TTL。
MongoDB有这一点,这不是一个问题。但是在ArangoDB中,我必须在会话存储的某个地方这样做。
每60秒检查一次过期会话(使用setTimeout)是否足够,还是应该使用其他方法,比如每次调用"get“函数时检查?
我会使用AQL查询来清除它们,类似于:
FOR s IN sessions
FILTER s.expires < DATE_NOW()
REM
我正在使用arangodb构建一个权限系统。
我想使用子查询来确定图遍历的起始节点。这就是我所尝试的
FOR vert IN 1..5
OUTBOUND (
FOR v, e, p IN 1..2
OUTBOUND 'users/jill'
GranterGrant, GrantGrantee
FILTER e.edgeType == 'GrantGrantee'
AND v.type == 'User'
AND v._id == 'users/jim
我在ArangoDB中使用ArangoDB运算符有一些性能问题。
简单地说,我有一个来自拆分函数的计算(在运行时) ids数组,我只想获得Collection的选定元素,然后收集或过滤其他数据。
在这里您可以找到AQL查询
LET toInclude = SPLIT('Collection/1,Collection/2,Collection/3', ',')
FOR result IN Collection
FILTER result._id IN toInclude
COLLECT property = result.property
WI
我正在使用Python访问我的ArangoDB。有时,通过使用len(cursor)来判断结果是否为空,或者是否只有一个结果,这会很有用。 不幸的是,这主要导致了一个异常: │arango.exceptions.CursorCountError: cursor count not enabled 在source code of the cursor中,似乎需要在结果集中有一个计数变量。 根据the documentation的说法,这可以通过添加以下内容来完成: COLLECT WITH COUNT INTO length 在我的例子中,我使用了一个简单的、基本上是自动生成的查询来过滤所有内
我不知道是否可以在Foxx脚本中调用AQL上设置的ArangoDb查询--就像存储过程可以被RDMS的服务调用一样。
到目前为止,我看到的所有示例都显示了嵌入到Foxx服务JavaScript中的AQL。
const result = db._query([name of query defined in Db], {
"@arg": arg-value
}).toArray();
我期望定义在ArangoDb上的查询运行并传递来自Foxx服务的参数值。但是_query方法似乎只接受查询字符串。
我一直在开发一个使用arangodb的配置管理系统,它收集一些常用软件的配置数据,并将其传输到一个程序中,该程序将根据一些预定义的规则生成这些软件之间的关系,然后将这些关系保存到arangodb中。关系建立后,我提供了查询数据的API。一个重要的查询是生成这些软件的拓扑。我使用图遍历来生成具有以下AQL的拓扑:
for n in nginx for v,e,p in 0..4 outbound n forward, dispatch, route,INBOUND deployto, referto,monitoron filter @domain in p.edges[0].server_na