如何从数组中为集合C中的每个文档分配唯一值
假设我创建了数组让A=1..count(C)。我如何从a中给C中的每个文档一个数字,确保a中的每个元素只使用一次?不幸的是,AQL中没有类似Python的迭代器enumerate()和zip(),这将使这非常简单和高效。但是,这仍然是可能的,但对于非常大的数据集来说,这可能是一项代价高昂的操作(主要是内存密集型操作),因为所有文档密钥都需要提取并存储在内存中:
LET arr = RANGE(1, LENGTH(C) * 2, 2)
LET docs
我有一个包含会话数据的集合,其中带有生存时间标志。我想使用AQL查询会话数据,但我需要确保只返回“实时”会话。是否可以基于生存时间属性限制查询
示例条目是
{
user: "marc",
sessionData: {},
expires: 1403678241
}
AQL:
应仅在未达到到期日期时返回用户。您可以使用AQL中的DATE_NOW()函数检索
“现在”。要将其转换为可读的内容,可以使用
DATE_ISO8601(DATE_NOW())。这需要Aran
使用Web UI制作了一个新的Foxx应用程序,并添加了以下路径:
controller.get('/names/:name',函数(请求、响应){
var name=request.params('name');
json(db.\u查询(
“对于集合中的x”+
“过滤器x.name==”+名称+
“返回x”
).toArray());
})
.pathParam('名称',{//第112行
description:'要搜索的名称值',
键入:“字符串”
})
.errorResponse(A
您好,我在Ubuntu 16.04版本上使用arangodb版本3.1.18我已经使用docker在两个节点上创建了arangodb集群,现在我的问题是如何从集群中删除节点?在删除节点后,我如何知道节点是否已删除?它是否显示在web界面上?请请求为我提供解决方案。要使用ArangoDB群集,您至少需要3个节点。确保您的服务尚未运行。通过执行sudo服务arangodb status检查这一点。如果此选项处于活动状态,请停止服务。在fist节点上,可以通过执行以下命令来启动它:
阿兰戈德
或者
在arrangodb(版本3)中,我需要一个查询来查找一个源到多个目标之间的所有路由
例如:
资料来源:51111454
目的地:[545981254754895]
我需要查询以检查5111454和每个目标数组之间的关系
事实上,我想在一个查询中合并以下四个查询:
FOR vertex[, edge]
IN ANY SHORTEST_PATH
**5111454** TO **5454**
GRAPH graphName
[OPTIONS options]
FOR vertex[, edge
我无法在我的计算机上工作,因为arangoDB消耗了我电脑的所有资源:
此外,ArangoDB逐位填充存储内存,直至完全填充
当内存完全填满时,我可以登录到127.0.0.1:8529
我也可以停止服务和处理,但不能立即停止
出什么事了?没有进一步的信息,很难判断发生了什么。您使用ArangoDB的工作负载是什么,例如,是否有大量传入写入,到多少个集合,它们的大小(大约)是多少?您使用的是哪一版本的ArangoDB?可能是,监视服务(每1秒请求一次)杀死了他?我删除的版本3.1.23了解服务
我所理解的是
Foxx基于V8引擎
Foxx是多线程的,它不与其他线程共享状态
Foxx的线程将在向客户端发送响应后立即退出(这是正确的术语吗?)
除了V8引擎的垃圾收集之外,这是否意味着一旦做出响应,foxx使用的任何内存都会被垃圾收集?
如果上述问题的答案是肯定的,有没有办法禁用V8引擎的垃圾收集器,如果禁用V8引擎的GC,我能期望更好的延迟
如果我弄错了,请告诉我。与许多其他解释器相比,javascript解释器有一个特殊的功能。它们需要在多个浏览器窗口中运行,其中一个窗口不应该知道另
有没有办法将ArangoDB图形导出到GraphML
我正在使用pyArango访问数据库。似乎只关注JSON(L)。您可以尝试将ArangoDB图形转换为NetworkX图形,然后使用NetworkX API进行转换。
您可以使用networkx适配器将ArangoDB图形转换为networkx图形。您需要使用字典描述ArangoDB图的顶点和边集合。请参阅中的“连接ArangoDB和NetworkX”一节:
详情请参阅。
获得networkx图形后,使用以下方法将其转换为graphML:
嘿
我在ArangoDB中将基本的分层游戏树存储为图形。每个游戏树都有一个开始节点,每个节点(包括开始节点)有2-5条边(动作)。我有两个集合,顶点的节点和边的动作
我正在使用NodeJSSDK,并试图找到查询所有开始节点的最佳方法?我是否应该向节点添加isRoot属性并使用该属性查询节点集合?或者我应该使用actions集合查询所有使用过滤器的节点,以查找没有入站边的节点吗?或者一个单独的开始节点集合?基于遍历或聚合的方法来查找根节点不会非常有效。最快的选择可能是添加一个isRoot属性,您可以查
比如说,我有属性“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
在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
在Mac OS上从2.1.2升级到2.2.0的最佳过程是什么?
我尝试使用:
$brew升级arangodb
这将导致一条消息,表明2.1.2已经安装
是否需要先删除2.1.2,然后再安装2.2.0?如果是这样,现有数据库会发生什么情况
谢谢
geoff colemanbrew公式尚未更新。你可以用
brew upgrade https://raw.githubusercontent.com/fceller/homebrew/master/Library/Formula/arangodb.rb
所以我有两个收藏,一个是带有一系列邮政编码的城市,一个是带有邮政编码及其纬度和经度的
我想返回离坐标最近的城市。使用地理索引很容易,但我遇到的问题是同一个城市被多次返回,有时它可能是第一个和第三个最近的城市,因为我在另一个城市边界搜索的邮政编码
城市示例数据:
[
{
"_key": "30936019",
"_id": "cities/30936019",
"_rev": "30936019",
"countryCode": "US",
"label
目前,我只能通过.gitignore调用我的配置文件来检测开发和生产环境,在配置文件中,我可以根据当前环境显式设置process.env.env='prod'或process.env.env='devel'。我可以肯定,这个值将在arangod启动时导入
但单元测试并没有在arangod启动时运行,所以我可能需要将一些侦听器连接到http请求或其他东西,以确定是否是一个请求触发单元测试?你能帮我做这个plz吗
谢谢我找到了两种可能的解决方案:
1)为测试创建一个预初始化文件,例如带有以下内容的t
使用arango2.8db,我可以根据文档id检查文档是否存在。但如果给定字段值,我可以检查文档是否存在
//if any document in database exist where fieldX = X return true
if(repoName.exists({fieldX:"X"})){
//do something
}
找到我需要的:byExample()
repoName.byExample({fieldX:"X"})
我想检索连接到顶点的所有文档
首先,我的想法是使用存储在其中的信息来找到一个顶点。我可以通过全文查询完成:
FOR doc IN spec
FILTER doc.serial_no == '"12345abc"'
RETURN doc
RESULT:
[
{
"_key": "3834670",
"_id": "spec/3834670",
"_rev": "_WP3-fvW---",
"type": "spec-type-545",
"name
我有两个问题,根据我的理解,这两个问题基本上应该是一样的。一个查询在我的边集合上进行筛选,并且执行得非常好,而另一个查询执行深度为1的图遍历,由于没有使用正确的索引,因此执行得非常差
我有一个账户收款和一个转账收款和一个关于转账的组合索引。_to和转账。数量
这是筛选查询:
FOR transfer IN transfers
FILTER transfer._to == "accounts/testaccount" && transfer.quantity >
如何返回新插入文档的数组?我想从Java执行大容量插入
INSERT {
text: @text0,
createdAt: @createdAt0
} IN messages
LET result0 = { id: NEW._key, text: NEW.text, createdAt: NEW.createdAt }
INSERT {
text: @text1,
createdAt: @createdAt1
} IN messages
LET result1 = { id
我想按嵌套对象的各种属性对ArangoDB查询结果进行排序,但是绑定变量似乎不能处理名称中的点,所以
query: FOR a IN collection SORT @key ASC RETURN a
bindVars: @key = 'a.b.c.d'
(or) @key = 'a.x.y'
不起作用
有没有办法将绑定字符串“eval”到嵌套属性
编辑:
我在文件中发现
“key”:[“a”、“b”、“c”]应该可以工作,但对我来说不起作用。文档引用(此处:a)需要保留在查询中。它
我搜索了整个arangodb项目网站,但没有找到解决方案。如果我遍历简单的树状图,如大陆/国家/首都,我如何获得当前项目的面包屑?希望这有意义我将从使用arangosh和Gremlin.JS的示例开始。稍后我将使用AQL,它在所有语言驱动程序中都可用
arangosh [_system]> var Graph = require("org/arangodb/graph").Graph;
首先是不同的地点(地区、城市):
以及它们之间的关系:
arangosh [_system]>
给出以下收集文件示例:
{
"timestamp": 1413543986,
"message": "message",
"readed": {
"8": null,
"9": null,
"22": null
},
"type": "1014574149174"
}
如何使用键“readed”更新对象中特定键的值?例如,键“8”的更新值:
您可以按如下方式使用MERGE或MERGE\u RECURSIVE:
db._query("FOR u IN
我在ArangoDB中有一个根节点为“X”的图。现在“a、b、c、d、e、f”是“X”直系或外祖父母的兄弟姐妹。现在,从给定的同级节点“a、b、c、d、e或f”,我想到达节点“X”。是否有任何常规AQL查询可以直接遍历到任何图的根节点?为了提供一个确切的示例,我需要了解更多,但这是几种解决方案之一
假设节点由“子”边连接,边的方向从父节点到子节点。您可以向上或入站
FOR v,e,p IN 1..50 INBOUND '(id of starting node a,b,etc.)' child
如图所示,每次运行源代码时,如果输入,程序将退出。这里的问题是找不到ICU语言环境数据库
关于如何设置它的详细说明可以在代码的图像中找到,在这里是绝对没有用的。有关不发布代码图像的许多原因的列表,请参阅。你也没有解释你想做什么或清楚地解释你的问题,你也没有问一个具体的问题。当您创建帐户时,您同意使用并阅读页面以熟悉该网站。请现在这样做,特别注意和,然后是您的问题。谢谢。Anthony,请打开一个github问题,描述您在哪个环境(包括您的区域设置)中尝试做什么,以及发生了什么。
我正在寻找一种方法来控制Arangodb3.0+中的遍历流,就像我们可以通过Arangodb2中的遍历使用过滤函数一样,以防止不必要的顶点探索。是否有替代方案或是否仍可以使用访客/过滤器功能
谢谢 您应该查看从2.x到3.x的迁移文档,以及当前AQL遍历文档。医生应该回答你所有的问题。我已经回答了,但没有。它显示了如何过滤结果,而不是如何控制勘探流程。如果你看到我没有看到的东西,请告诉我。
任务:从用户集合中随机获取好友建议
这是一个用户集合示例:
{
"firstname": "John",
"lastname": "Doe",
"username": "johndoe",
"email": "john@doe.com"
}
我还有一个edge collectionfriendRequest,它存储的好友请求如下:
_from: "User/John" -> _to: "User/Jane"
问题:我想过滤掉我自己和我已经向其发送请求的用户
这是我的初始
我正在使用ArangoDb的最新版本,我有问题。
我有两个收藏:
国家/地区(这是文档集合)和距离(这是带有以下键的边集合:_-from,_-to,Distance)
我如何通过AQL获取有关Country.Continent='european'所在国家的所有信息,以及它们与edge collection之间的距离
SQL是这样的:
从国家c选择*距离d,其中c.大陆=“欧洲”
多谢各位 我最近一直在做一个项目,并开始使用ArangoDB,希望我能为您提供帮助
我从以下Arango和AQL文件
我有一个关于变音符号的问题。为了简单起见,假设我有一个文档集合“c”。我提出两个文件:
{"uri": "/c/de/aërotropismus/"}, {"uri": "/c/de/aerotropismus/"}
正如你所看到的,除了变音符号,它们几乎是一样的
然后,我在字段“uri”上创建一个持久索引
在此之后,我执行查询:
for doc in c
filter doc.uri >= "
如何从文档中删除子项。假设我有一个名为sales的文档,每个sale都有一个sale.item,其中包含{name,price,code}
我想通过检查代码是否为空或null来删除每个无效项
尝试下面这样的方法失败,但出现错误,我不确定是否需要使用子查询以及如何使用
FOR sale in sales
FOR item in sale.items
FILTER item.code == ""
REMOVE item IN sale.items
又一次尝试
FOR sale in sal
我正在关注ArangoDB文档,目前正在关注ArangoDB Shell配置一节;这里,它们描述了一个.arangosh.rc文件,该文件来源于您的主目录,将自定义代码放入arango shell的全局范围。在T的文档之后,我在我的主目录~/.arangosh.rc中创建了一个.arangosh.rc文件,并添加了示例函数
timed = function (cb) {
var internal = require("internal");
var start = internal.ti
为了访问集合内容,我需要知道{collection name}和{document key}。
如何在ArangoDB with http中使用{document key}获取所有文档的列表?中有一个get/_api/document请求,它将从集合中检索所有文档。如果您指定type=keyquerystring参数,那么您将得到一个文档键数组的响应。中有一个get/\u api/document请求,它将从集合中检索所有文档。如果指定type=keyquerystring参数,则将获得带有文档
我刚刚通过Microsoft Azure设置了一个DC/OS群集,并使用DC/OS仪表板(通过ssh隧道)在群集上安装了Arango 3.0。我能够通过SSH连接到集群并与Arango集群通信:
$ curl --dump - http://localhost:8529/_api/gharial
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Server: ArangoDB
Connection: Keep-Alive
我们正在DC/OS中建立ArangoDB集群。对于数据存储,我们安装了100 GB的
EBS到前面提到的/dcos/volume1,磁盘空间将反映在DC/OS仪表板中
但是,ArangoDB服务器进程通过以下docker命令启动:
I0110 13:04:25.273998 21115 docker.cpp:815]正在运行的docker-Hunix:///var/run/docker.sock 运行--cpu共享1024--内存16106127360-e群集角色=主-e群集ID=DBServe
我有一个名为prodSampleNew的集合,其中的文档在arangodb中具有层次结构级别作为字段:
{
prodId: 1,
LevelOne: "clothes",
LevelTwo: "pants",
LevelThree: "jeans",
... etc....
}
我希望将层次结构级别转换为它们自己的文档,以便最终使用层次结构构建适当的图形
我能够通过以下方法提取层次结构的第一级,并将其放入新集合中:
for i IN [1
我发现我可以.save(objects),如果密钥不存在,它会创建对象。我发现我可以.bulkUpdate(objects)来更新存在密钥的对象
我的问题是:如何进行批量升级?如果密钥存在,则更新它(合并),如果不存在,则创建它
有没有一种方法可以在不增加大量开销的情况下做到这一点
这样做可以接受吗
db.collection("threads").bulkUpdate(keyedThreads);
db.collection("threads").save(keyedThreads);
RE
Arango搜索似乎不支持LIKE运算符。
其他受支持的操作员工作正常
尝试了以下AQL:
FOR s IN searchView
SEARCH s.name LIKE "somesubstring"
RETURN s
但它给出了一个错误的说法:
查询:AQL:未实现:无法将循环变量“s”作为
ArangoSearch不符合表达式的一部分
“LIKE([$0.name,“somesubstring”])”(异常位置:
C:\vm04 windows\oskar\work\ArangoDB\ar
鉴于以下文件结构:
{
"active": "N",
"code": "AL",
"id": 3,
"mcc": "+355",
"name": "Arango",
"participant": [
{
"actor": {
我有一个文档列表,希望将它们合并到一个文档中。
Arango的文档中说,您可以像这样合并两个文档:
arangosh [EC]> db._query('RETURN MERGE({foo: "bar"}, {fizz: "buzz"})', {}).toArray()
[
{
"foo" : "bar",
"fizz" : "buzz"
}
]
但合并功能不接受列表:
arangosh [EC]> db._query('RETURN MERGE([
我可以在一台机器上运行arangodb的3个实例:代理、协调器和主数据库。
但它们消耗的RAM大于200M+>200M+>100M=>500M
我可以在“单实例模式”下运行arangodb,它只消耗>300M。
(如果你有1G的内存,那么200米就太多了。)
有没有一种方法可以运行一个单独的实例作为“在集群中配置的”
我的意思是,在第一台机器上,我将运行一个实例来完成所有3个任务:代理是agent0,集群是coodrinator0和主db0
在第二台机器上,我将运行一个arangodb实例,该实
我想将3个集合的结果合并到单个集合中,但无法合并最终结果的finishedStatus属性
最终结果收集:
仅包含唯一状态
每个文档都可以保留生成此状态的计算机
合并finishedStatus,然后对finishedStatus.count求和
(可选)排序完成状态[*]。状态
给定
收藏A
{"status": ["1","2","3"], "machine": "A", "finishedStatus": [{"status": "4", "count": 10}, {"status
在ArangoDB中检索文档时,是否有一种方法可以在字符串字段上执行索引
另外,如果有任何方法可以优化此功能,请让我知道REGEX\u TEST()AQL函数没有可用的索引加速功能,将来也不太可能出现。这不是因为用户和开发人员不感兴趣,而是因为实际上不可能构建任何类型的索引数据结构来加速正则表达式的计算
ArangoDB支持的正则表达式允许使用多种不同类型的表达式,但由于它们的差异太大,几乎没有机会使用合适的索引。对于相等性比较,有哈希索引,这可能是最快的索引类型。对于范围查询,有skiplis
我的图表如下:
A -> B -> C ->D
\> E -> F -> G
\> H -> I- J - ...
当我选择H节点时,我想得到他的所有父节点A,E和所有子节点I,J.
我期待的结果是A、E、H、I、J.
我在JAVA中使用了两个AQL,一些代码如下:
华氏度:
FOR v,e,p IN 1..9999 INBOUND 'xx/xx' xxGraph
RETURN e
FOR v,e,p IN 1..99
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 19 页