我的行动如下:
使用插入脚本在“节点”集合中插入100万个文档。ArangoDB消耗了30MB内存
将“节点”集合重命名为“节点临时”
使用插入脚本在“节点”集合中插入100个文档。这是成功的
在这些操作之后,我发现了一个问题。在AdminWebUI(ArangoDB)中,当我在“集合”页面中单击“节点”查找文档时,很长一段时间都没有响应。ArangoDB消耗了900MB内存。经过很长一段时间(超过5分钟),网页被打开,显示“节点”集合中有100万个文档。我认为重命名操作可能有问题。这在版本2.
据我所知,arangoimp函数可以将文档数组导入到新集合中
因为我有复杂连接的输出,以文档数组的形式,我想创建一个新集合。考虑到这一点,有没有办法在数组上执行arangoimp作为查询的一部分,或者(比如)arangosh
否则,我的选择是:
1) 只需将其吸收并遍历数组并保存文档;或
2) 将数组转储到文件并使用arangoimp导入
也许我在这里遗漏了一些明显的东西,但这周我有一点时间尝试找出答案。所有的想法或建议都收到了,非常感谢。我理解并纠正我的错误,如果我错了,你想让它自动化。首先,
我目前正试图将我的代码从Arangodbv2.8迁移到v3.0.1,但路由问题一直困扰着我。我有一条简单的路线,如:
const router = require('@arangodb/foxx/router')()
router.get('/hello', function (req, res) {
res.json({ hi: 'world' })
})
我的基本URL是:
当然,我的路由器在manifest.json中注册为“main”:“index.js”,
但是当我试图通过/
我是阿兰戈的新手。我正试图将我的一些数据从Neo4j导入arango。
我正在尝试添加数百万个节点和边缘来存储不同人群的播放列表数据。我有neo4j的csv文件。我运行了一个脚本,将node的csv文件的格式更改为具有_key属性。以及具有_to和_from属性的边。
当我在一个非常小的数据集上尝试这个方法时,一切都很顺利,我可以在UI上看到图形并执行查询。宾果
现在,我正在尝试添加数百万行数据(每个arangoimp批导入一个包含100000行的csv)。每个批次有5个集合(每个集合有一个不同
我对ArangoDB有许多不同的部署情况。其中一个在用户的台式机或笔记本电脑上
我已经阅读并实现了如何在Spartan模式下运行ArangoDB的说明(非常有用)
然而,我需要更多。桌面用户可以处理数据库中的许多不同集合,所有这些集合都保持加载状态并消耗大量虚拟内存。如果某些应用程序检测到它们正在内存受限的环境中运行,这可能会导致它们的行为有所不同
因此,我正在寻找一种方法来卸载“最近”没有访问过的集合(一些可配置的时间)
有(好的)方法可以这样做吗?对于版本3.4,我在arangod.conf
我在思考如何遍历某个图形以提取某些数据时遇到了一些困难
给定一组“用户”和一组“地点”
“喜欢”边缘集合表示用户喜欢某个地方。“likes”边缘集合还有一个“review”属性,用于存储用户对该位置的评论
以及“跟随”边缘集合,表示用户跟随另一用户
我如何遍历图表来获取我喜欢的所有地方,以及我对这些地方的评论和我关注的用户的评论,这些用户也喜欢同一个地方
例如,在上图中。我是用户6327,我查看了两个地方(7968和16213)
我还关注用户6344,用户6344碰巧也查看了Place7968
我尝试使用数据查询来修改文档
这适用于正常结构。但当查询是数组形式时。这似乎不会替换或修改状态。我怎样才能做到这一点
这是我的阵列
`{
"slave_state_datasets": [
{
"no": 0,
"name": "abce",
"status": true,
"interrupt_time": 0.2,
"timestamp": 1,
"dataset_input": [
{
"data": 8
最好在ArangoDB WebUI中使用AQL,是否可以生成类似以下内容的随机字符串或字母和数字:4EKH5G3AN6HH
如果不是,那么不在应用程序代码中执行的另一种方法是什么
然后你可以申请
来自sevcik.tk的极好答案
以防万一,您可以生成充满随机数据的文档,如下所示:
FOR i IN 1..300000
INSERT {
code: CONCAT("t", i),
name: RANDOM_TOKEN(32),
article1: R
我对AQL有问题。在查询中,我搜索某个值,并期望得到一个包含搜索值的边的结果。看起来还可以,但我也得到了一个空值。数据库中似乎有一个空值,当然不应该是空值。但是由于空值与要求不匹配,我很惊讶它竟然出现了
有人能解释为什么会发生这种情况吗
FOR v,e,p IN 1..10 Any 'myNode/12345' Graph 'My-Mesh' OPTIONS { uniqueVertices:'global', bfs:true } FILTER p.edges[*].MyId ALL == '
在ArangoDB,我有一个“人物”集合。每个人都有名字和国籍。
我如何找到所有姓名出现不止一次且是美国人的人的钥匙
我可以分别运行这两个查询。
选择姓名出现多次的所有人员:
FOR p IN people
LET key = p._key
COLLECT p.name INTO groups KEEP key
FILTER LENGTH(groups) >= 2
LET group = groups[*].key
RETURN group
选择所有美国人:
FOR p IN peopl
我有这样的代码
let item = { name: 'Roger' }
try {
return await collection.save(item)
}
catch (err) {
}
{
"isArangoError": true,
"response": {
"_readableState": {
"objectMode": false,
"highWaterMark": 16384,
"buffer": {
检索相关边集合中没有边的所有顶点的最佳方法是什么
我尝试过使用下面的代码,但自从Arangodb2.8以来,它的速度变得非常慢(在以前的版本中它并不是很快,但大约是现在的10倍)。大约1000条边和3000个顶点的集合大小需要30秒以上的时间
FOR v IN vertex_collection
FILTER LENGTH( EDGES(edge_collection, v._id, "outbound"))==0
RETURN v._id
更新
在玩了一会儿之后,我得出了以下
在arangosh中,我意外地执行了require(“org/arangodb/users”).save(“user”、“password”)而没有console.history false命令行选项,现在密码似乎永远是历史的一部分
有没有办法删除arangosh的命令历史记录?您的用户文件夹中应该有一个名为.arangosh.history的文件
路径取决于您的操作系统。它应该是以下内容之一:
Linux上的/home//.arangosh.history
macOS上的/Users//.a
我正在试用新的ArangoDb网络重新实现驱动程序。今天是我第一次尝试表演。当我用Arongosh做插入时。它每秒可以插入大约5000条记录。但是,当我使用.Net驱动程序执行相同的更新时。我花了大约2分钟来执行相同的插入。我能知道我做错了什么吗?谢谢
[编辑]完成问题
我已经用arangosh测试了下面的代码
count=1;
startTime=+new Date();
console.log(startTime);
while(count <= 10000)
{
db.someCol
我创建了一个边缘集合,大约有1600万条边缘。边不唯一,表示从顶点a到顶点b有多条边。边缘集合大小约为2.4 GB数据,边缘索引大小为1.6 GB。我使用的是一台16GB内存(另外还有16BG交换空间)的计算机
现在,我尝试使用如下语句计算唯一边(在每个顶点a-b对之间):
FOR wf IN DeWritesWith
COLLECT from = wf._from, to = wf._to WITH COUNT INTO res
INSERT { "_from"
我使用的是来自nodejs应用程序的最新版本的ArangoDb和ArangoJs。我有两个顶点
使用者
代币
tokensvertex包含向usersvertex中的一个用户颁发的安全令牌。我有一个名为token\u所属的边定义连接tokens到用户
如何使用ArangoJs存储属于现有用户的新生成令牌?我假设您使用的是ArangoDB 2.7和ArangoJs的最新版本(撰写本文时为4.1),因为自3.x版本的驱动程序发布以来,API发生了一些变化
正如您没有提到的,最简单的方法是直接使用集合
下面是Arangodb2.7.3文档的第一部分。我已经做到了
brew install
/usr/local/sbin/arangod &
在基本集群安装之后的下一节是为使用linux的用户编写的。它要求您修改我已经完成的配置文件,然后通过/etc/init.d/arangodb重新启动arango,在mac osx上重新启动arango守护程序的正确方法是什么?
jobs -l
获取流程的pid。其次是:
kill -9 <pid>
/usr/local/sbin/a
我找不到在哪里引用带有空格的字段名,例如在执行
FILTER s._key = a.`Supplier Id`
上面的sql风格的引号不起作用,数组访问也不起作用。正确的方法是什么?现在明白了,我被SQL咬了一口,忘记了在AQL中与==进行相等比较。然后数组访问就开始工作了,所以将字段名与空格一起使用的方法如下:
FILTER s._key == a['Supplier Id']
如果字段没有空格,但有一些特殊字符,则可以使用反勾号而不是数组访问:
FILTER s._key == a.`Å
通过“包含”给出一个图表,我有以下内容:
D包含LibD
C包含LibC和D
B包含LibB和D
A包含LibA、B和C
使用:
FOR v,e,p IN 1..50 INBOUND 'pmconfig/899018092734' pm_content RETURN p.vertices
我得到以下路径:
A->B->LibB
A->B->D->LibD
A->B->D
A->B
A->LibA
A->C->LibC
A->C->D->LibD
A->C->D
A->C
我想过滤掉中间
我的目标是一个ARMV5CPU,所以我必须找到一个适合运行它的nosql。MongoDB停止了对ARMv5的支持,所以我来到ArangoDB。它允许我在ARMv5上交叉构建和运行吗?有人有这方面的经验吗
提前谢谢。
-woody对不起,arangodb没有缩小到这个目标。它的V8依赖项至少需要ARMV7
对于ARM7,目标将编译,但目前无法完全工作
但是,您可以通过一个简单的HTTP客户端访问它,因此客户端/服务器体系结构可能更适合您的需要
对于这种大小的嵌入式目标,SQLite往往是最好的解决
我有一个不明白的问题,比如一个集群有三个节点,
每个节点都是agent、coordinate和dbserver,我在一个节点上执行aql查询,实现计划如下:
arangodb --starter.join 10.200.11.32,10.200.11.34,10.200.11.35
查询字符串:
FOR v,p IN outbound
SHORTEST_PATH @startnode
TO @endnode
GRAPH @graphname options {bfs:true}
filter
我正在创建foxx服务,现在我正在VS代码中创建它,并在服务部分上传zip文件,在开发模式下有一个挂载点。现在我想在web界面中快速编辑foxx服务本身。我读过这篇文章,但由于某些原因,我没有使用web界面编辑它的选项。我是否缺少一些配置/设置之类的东西。使用Foxx进行快速开发的一种方法是使用IDE,自动将修改后的文件上传到本地“部署”位置
例如,如果使用WebStorm IDE,并在与GIT集成的目录中编辑文件,则可以签出并签入代码
WebStorm(或其他IDE)有一个功能,可以监视编辑的
我创建了一个ArangoDB Foxx服务,并使用Foxx CLI成功地将其安装到某个路由上。我的服务有一个依赖项,它使用随机字节。当我调用该服务时,它返回一个错误,说“randomBytes不是函数”
出于测试目的,我创建了另一个服务并返回了typeof require('randombytes')。它返回了未定义的
在安装过程中,Foxx CLI没有向我发出任何警告
有人有过这样的经验吗?首先,您是否在package.json依赖项中定义了randombytes模块
{
"private
比如说,我有属性“text”的顶点和该属性的全文索引
在arango 2.1.2 shell中,我可以使用
g._vertices.fulltext("text","my text value")
或db.v.fulltext(“文本”、“我的文本值”)
但是如果我使用blueprints-arangodb-graph-1.0.8,blueprint实现激发的请求看起来像
http://{arangodb}/_db/testdb/_api/graph/test_graph/vertices
在Arangodb2.5.2(可能更早)中,我们编写的代码依赖于文档中允许空字符的值
在ArangoDB 2.6.1+中,NULL似乎充当字符串终止符,即使可能有更多的字符串数据。我们如何恢复以前的行为
例如,如果该值为“value\u0000SubValue1\u0000SubValue2”,则较新版本会很遗憾地截断:
2.5.2 => "value\u0000SubValue1\u0000SubValue2"
2.6.2 => "value"
由于ArangoDB是多模型数据库,我们可以选择将连接建模为图边或“指针”(指向其他文档的单个ID或ID列表)
在哪种情况下,您推荐哪种类型?每种情况(一个、一个、多个、多个、无限级别)的优缺点(速度、查询复杂性/易用性等)是什么,其中后者可能是图形最明显的情况(使用遍历、最短路径等)
我见过一个作家和书籍的例子,一个多重关系,其中使用了边缘。但我猜它也可以被建模为带有作者id列表的图书对象?我已经看到一些关于边的专业是,它们可以有属性,例如类型,但同样,这也可以很容易地建模为[{propert
我正在尝试重新设置顶点的父对象。我试过了,但似乎没有效果
FOR c IN pm_child FILTER c._to == 'pmlibrary/48198494363' UPDATE c WITH {_from: 'pmattic/48212650139'} IN pm_child
当我查看pm_儿童收藏时,字段中的_未被触及。修改边的正确方法是什么?作为\u键-属性\u from和\u to
所以,虽然可以在创建文档时指定它们,但以后不能更改它们
您需要使用新的\u from和\u to
我有这条路
(user)-[like]->(book)
现在我想得到一个所有用户都喜欢的书的列表
USER BOOK
[user, user] book
[] book
[user] book
我只找到了有起点的示例,但在本例中没有。假设您已经创建了一个文档集book和user以及一个类似的边缘集:
FOR b IN book
LET u = (FOR v IN 1 INBOUND b @@edgeCol RETURN v)
我想删除纬度和经度
{
"property_status": "available",
"property_address": {
"latitude": 35.1269874,
"longitude": 45.34897523
}
}
由于您没有提供任何上下文,让我向您展示如何在AQL中执行此操作:
FOR doc IN coll
FILTER ... // find the right document(s)
UPDATE MERGE(doc, { pr
在ArangoDB中计算路径遍历之后,我希望在下游应用程序中使用数据。在那里,我需要协调所有构成问题路径的边。因此理想情况下,路径作为一个id,这个id也出现在相关的边缘中,并显示在结果json中
当前的json for path文档保存路径,无需进一步标识,并将其下的所有边缘和垂直信息组合在一起。当我尝试在Power查询中转换json时,边缘信息丢失
非常感谢您的帮助
BB
我正在尝试运行一个定制的Foxx应用程序
目录结构:
~/src/js/foxx
数据库
_系统
我的应用程序(来自文档)
试验
myapp(我的自定义应用程序)
manifest.json
app.js
myapp manifest.json
{
"name": "myapp",
"version": "0.0.1",
"author": "ccraig",
"controllers": {
"/": "app.js"
}
我的环境是本地计算机:
ubuntu 12.04
ArangoDB 2.2.4或2.2.3
perl驱动数据库
CPU:3核6线程
内存:3GB
我使用了保存方法。Save方法等于HTTP_GET和HTTP_POST。
执行结果如下:
一个perl进程,插入30000个文档。平均700次请求/秒。350 HTTP_GET和350 HTTP_POST。
10 perl进程,插入30000个文档。平均1000次请求/秒。500个HTTP_GET和500个HTTP_POST。
运行30秒后,它将报告H
我是arangodb的新手,非常喜欢它,但我正在努力创建查询语句。
我有两个集合(VA、VB)和它们之间的边缘(EC)
我想查找带有特定筛选器(而不是_id)的搜索Va,然后返回连接的文档(VB)(通过EC),其中EC具有特定属性(例如活动:true)
在文档中,我只找到了顶点已知的示例。
提前谢谢大家,,
Jnl是的,制作一个图形会让它变得更简单,但是您仍然可以在不使用图形的情况下查询它
这是一个直接使用三个集合即可工作的示例:
FOR va IN VA
FILTER va.name == '
如何作为正常限额查询的一部分获取完整计数
我希望在GUI的查询部分执行此操作
问候,,
Sajeev您可以在创建光标的选项中将标志fullCount设置为true。然后,结果将有一个额外的属性,其中包含子属性stats和fullCount
然后可以通过cursor.extra.stats.fullCount获取fullCount属性。此属性包含应用查询中最后一个限制之前结果中的文档数。看
请记住,fullCount属性仅在LIMIT之前的结果数高于之后的结果数时才会出现。谢谢您的回答。但我希望在
比如说,在我的图中,我有一些边,这些边有一个叫做值的字段。选择“开始顶点”后,我希望通过始终选择具有最高值的边来查找路径。不幸的是,我不知道如何编写正确的查询,在ArangoDB中可以吗 您好,我不确定您想要实现什么,从您的描述中,我可以想象出两种可能的情况:
第一:最短路径
这里的用例是您知道起始顶点和目标顶点,并且希望在这两者之间找到最短(或最便宜)的路径。
内置的最短路径()功能可以通过在如下选项中定义距离属性来实现:
FOR v IN OUTBOUND @start TO @end @@
我想要推送到arangodb的模式是:
{
名称
形象
}
此图像是图像的url。在将文档推送到集合之前,是否有任何方法可以自动处理此url并将其转换为base64?。有很多npm软件包就是为了这个。你看过ArangoDB中的Foxx Microservices吗?这听起来像是一对完美的组合,它真的能帮你。使用Foxx,您可以公开您的客户使用的REST API端点,在它实际提交到数据库之前,它可以在其中执行所有数据验证和操作。@DavidThomas感谢您的检查
我正在评估ArangoDb+Foxx的多租户应用程序
目前,我在\u system中有一个协调器服务,它创建新的数据库,并在数据库中安装一个服务,该服务将引导数据库并充当api层
使用一个单一的Foxx服务来处理整个api堆栈是否存在优化问题?或者将其拆分为许多较小的服务,以便将请求分散到不同的V8上下文中更好吗
最后,对于每个db/租户一个服务甚至多个服务,您现在是否需要在需要更新时更新每个租户的每个服务?当您尝试应用滚动或蓝色/绿色部署时,这听起来像是有很大的错误和bug空间。有没有更好的方
我也不熟悉图形数据库和arangodb。
我试图用不同的边定义查询一个图,但没有找到任何这样的例子。用于获取我找到的一条边的结果的查询
FOR p IN person
FOR vx, ex, px IN ANY p GRAPH "test" FILTER vx.brand == "BMW" RETURN DISTINCT p
为p本人
对于任何p图中的vx、ex、px,“测试”过滤器vx.brand==“BMW”返回不同的p
例如:
我有顶点“人”、“车”和“房子”,边“有车”(人->车)和
在SmartGraphs的描述中,似乎暗示图形遍历查询实际上沿着机器之间的边进行,直到查询完成。这就是它的实际工作原理吗?例如,假设您有以下查询,从id为12345的人开始检索1-hop、2-hop和3-hop好友:
FOR p IN Person
FILTER p._key == 12345
FOR friend IN 1..3 OUTBOUND p knows
RETURN friend
有人能告诉我这个查询的整个生命周期,从客户端开始,到客户端的结果结束吗?与我们网站上的
我是arangoDB的新手。在foxx框架的帮助下,您可以在ArangoDB之上创建api,这很令人兴奋。不知何故,我无法成功运行/创建foxx应用程序。我不确定我在这里是否做错了什么。下面是我运行foxx hello应用程序所遵循的配置和步骤的详细信息。如中所述
ArangoDB 1.4.3(64x)
Windows 7 Pro(64x)
安装位置(C:\triAGENS),已添加到系统路径
从用户目录运行的命令。
命令:arangod.bat
命令:foxx-manager.bat更新和
我是ArangoDB的新手,我正在尝试进行一些CRUD操作,但每当使用Enum访问实体对象时,我都会感到口吃
它提示我这样的信息
System.InvalidCastException :
Invalid cast from 'System.Int64' to 'Testing.Sample.Repository.EventAction'.
EventAction实际上是一种Enum类型。一旦我把它转换成整数,它就可以工作了。我想知道我是否可以在我的案例中使用enum,因为它比使用integ
我是Arango DB的新用户,目前正在为我的项目评估它。
有人能告诉我,你能在Arango DB中创建的最大数据库数量是多少吗
谢谢。据我所知,ArangoDB中的数据库数量几乎没有限制。
唯一需要记住的是数据库及其集合所需的资源
对于每个数据库/集合,其中一些资源包括:
磁盘上的文件:需要空间和文件描述符
内存:每个数据库/集合将占用磁盘上的空间(加载时也会占用内存)
对于集合,随时需要的文件描述符数量取决于为其定义的日志大小。如果日志大小较大,则需要较少的文件,因此需要较少的文件描述符
我有4842个文档,带有示例格式
{“ID”:“12345”,“NAME”:“NAME_value”,“KIND”:“KIND_value”,…,“Secondary”:{…},“Secondary”:{…},“Secondary”:{…}其中,“…”是每个对象的键值对的数量更多变化
在插入数据之前,我使用-db.collection.ensureFulltextIndex(“KIND”)将KIND索引为全文索引。而且,KIND只是一个单词字符串。没有空格
通过AQL执行了以下查询:
对于全文文
我的问题是:
我将使用lastInsert键在2个集合上插入2个数据集
LET i = (
INSERT {"lvl": @Lvl, "kapitel_key":@Kkey, "plan_key": @Pkey, "xcontent_key": @Xckey, "user_key": @User_key, "templatefile": @Tf }
IN xtemplate
LET inserted = NEW
RETURN MERGE(ins
我对ArangoDB和基于图形的遍历查询都是新手
下面是我的图表当前的结构。每个顶点将至少有一个属性(键值对)。你可以认为它有一个依赖树。每个父节点(具有自己的属性)都依赖于子节点(同样具有自己的属性)。没有继承,只有父子关系
让我们来举个例子:
顶点1具有{key1:value1}
顶点2有{key2:value2,key3:value3}
顶点3有{key4:value4}
顶点4有{key5:value5}
我已经从文档中找到了基本的图形遍历,但是我有一个特定的要求,即基于顶点(已访问)
(很抱歉提出新手问题,但在文档中无法轻松找到)
我希望有一个带有几个模型的文档存储,然后在我的Foxx服务中,在查询中使用一些属性作为参数。
假设我有一个电影和系列剧的db:
{
'type':'movie',
'year':'1997',
'director':'xxxxxxx',
...
},
{
'type':'series_episode',
'season':'1',
'episode':'3',
...
}
...
我
尝试使用新的ArangoSearch功能时,我发现“arangod”崩溃,“分段错误”。这种情况发生在两种情况下:
集合已经有了“arangosearch”视图,我尝试通过API上传数据
如果数据已经加载,则尝试创建视图会产生相同的结果,“分段错误”
我用GDB做了一个堆栈跟踪:
2018-05-29T15:12:13Z [51783] INFO You are using a milestone/alpha/beta/preview version ('3.4.milestone0') of
我已经在AWS ubuntu EC2实例上安装了ArangoDB,并安装了所有必要的ArangoDB包
但是,我不知道如何访问端口8529上的WebUI,因为当我在浏览器中输入http://ip instance:8529时,我收到一个错误
在实例的安全组中启用了端口8529。我是否必须在终端中执行任何命令才能访问WebUI
谢谢
我正在使用ArangoDB和Foxx开发一个RESTAPI。在多个模型中不断出现的模式如下所示:
const NewAccount = Foxx.Model.extend({
schema: {
name: Joi.string().required(),
... multiple properties
}});
当我将模型存储在数据库中时,我想添加属性,如创建时间戳、帐户状态等等
const Account = Foxx.Model.extend({
schema: {
我正在寻找解决方案,将帮助我做ArangoDB上的可视化查询。我要找的东西有点像把过去一个月里所有用过XYZ车的人都给我。在这个简单的例子中,我将有两个实体person和car和一个链接used\u car。Person对象将是匿名的——这意味着我不知道他们的ID,但我知道我正在寻找的汽车的ID
这只是一个小例子,我希望能够使用一些可视化库进行更复杂的查询。可视化部分并不重要,对我来说重要的是,是否有将某些可视化请求转换为AQL代码的指南/最佳实践
虽然不是针对ArangoDB图形数据库,但我已
1 2 3 4 5 6 ...
下一页 最后一页 共 10 页