标签: arangodb

使用 Python 的 ArangoDB - 401 无权执行此请求

我目前正在尝试通过 Python 自动创建和填充集合。如前所述,我选择的数据库是Arango。我遇到的问题是我收到一个错误:

[HTTP 401][ERR 11]无权执行此请求

我关闭了防火墙并尝试重新安装 Arango,以检查我是否在设置管理配置文件时搞砸了某些内容,但一切似乎都很好。到目前为止,我发现的唯一类似的问题是这个,但它仍然与我的问题无关。

关于构建器,这就是我的设置方式:

config={
   "database": 'exampleDB',
   "host":'localhost',
   "protocol":'http',
   "port":'8529',
   "username":'someone',
   "password":'xxxx'
}
Run Code Online (Sandbox Code Playgroud)

我在设置权限配置时还缺少什么吗?或者问题可能出在其他地方。

我不会发布完整的代码,因为它是公司拥有的软件。

python database arangodb

3
推荐指数
1
解决办法
2335
查看次数

ArangoDB 读取超时(读取超时=60)

我有个问题。我正在使用ArangoDB enterprise:3.8.6通过Docker. 但不幸的是我的查询花费的时间比30s. 当失败时,错误是arangodb HTTPConnectionPool(host='127.0.0.1', port=8529): Read timed out. (read timeout=60)

  • 我的收藏大约有 4GB 大,大约有 1.2 mio - 收藏中有 900k 个文档。

我怎样才能获得包含所有文档的完整集合而不出现任何错误?

Python代码(在我的机器上本地运行)

from arango import ArangoClient

# Initialize the ArangoDB client.
client = ArangoClient()

# Connect to database as  user.
db = client.db(<db>, username=<username>, password=<password>)

cursor = db.aql.execute(f'FOR doc IN students RETURN doc', batch_size=10000)
result = [doc for doc in cursor]

print(result[0])

[OUT]
arangodb HTTPConnectionPool(host='127.0.0.1', port=8529): Read timed out. (read timeout=60)
Run Code Online (Sandbox Code Playgroud)

ArangoDB …

python arangodb docker docker-compose python-arango

3
推荐指数
1
解决办法
1296
查看次数

foxx模型中的属性选项

有没有办法指定Foxx.Model的可接受值?

像理想的东西:

var ExampleModel = Foxx.Model.Extend({}, 
{
    attributes: {
        field: { type: "string", required: true, values: ['one', 'two'] }
    }
});
Run Code Online (Sandbox Code Playgroud)

提前致谢.

nosql arangodb

2
推荐指数
1
解决办法
69
查看次数

ArangoDB:GRAPH_NEIGHBORS产生错误"[1909]迭代太多"

一些背景信息:我有一个"问答"网站,里面有很多帖子和用户.数据存储在MSSQL数据库中.我很感兴趣的是图形数据库如何帮助用户产生有趣的结果,比如建议类似的用户或建议相关的帖子.

我设法从测试数据库导入所有帖子和用户(只有他们的ID)和"post to post"和"post to user"关系到ArangoDB数据库,最后得到4个集合:

  1. 帖子:文件收集,9833条目
  2. 用户:文档集,1264个条目
  3. parentToChildPosts:存储从父帖子到子帖子的关系的边缘集合,4978个条目
  4. postToUsers:边缘集合存储从帖子到其所有者用户的关系,9833个条目.

然后我用2条边构建了一个图形"postGraph"并创建了一个AQL查询,试图根据"用户帖子"和"帖子后"关系实现一个简单的"类似用户"算法.以下是使用_id"users/1"搜索前10位类似用户的查询:

FOR e in GRAPH_NEIGHBORS('postGraph', 'users/1', 
{ edgeCollectionRestriction: ['parentToChildPosts', 'postToUsers'], 
    vertexCollectionRestriction: 'users', 
    minDepth: 3, 
    maxDepth: 3 })
FILTER e.vertex._key != '1'
COLLECT userid = e.vertex._key INTO g
SORT LENGTH(g) DESC
LIMIT 10
RETURN userid
Run Code Online (Sandbox Code Playgroud)

在视觉上,我从用户'users/1'开始搜索,并找到以下其他用户的路径:

user => post => parent/child post => user.

所以遍历的深度是3.然后我排除用户自己(FILTER),按用户键分组并计算结果数量并获得前10名.

我测试了查询,它适用于大多数用户,但对于一些有错误的活跃用户失败了:

[1909]迭代次数过多

查询运行得非常快(在一秒钟内)并给出错误.其中一个失败的活跃用户有727个帖子(在我看来并不多).

我还尝试了另外两种方法来实现该算法:

  1. 写3个GRAPH_NEIGHBORS查询,模仿一次遍历的3个步骤:慢得多.第一次运行它需要大约3秒钟.
  2. 使用Join(不使用任何图形函数):非常快.

从文档中,ArangoDB建议在这种情况下使用图形函数.所以我不赞成使用Join(给我一种感觉,我也可以在SQL中做到这一点,所以为什么要使用图形数据库).

有任何建议如何使GRAPH_NEIGHBORS快速运行而没有任何错误?或者任何其他建议如何构建图形,比如图形可以增长多大?

arangodb

2
推荐指数
1
解决办法
129
查看次数

如何在Arangodb Docker容器中停止和启动Arangodb服务器

我无法在arangodb docker容器中停止arangodb服务器。

当我执行不到一个时,

$ / etc / init.d / arangod停止

$ service arangodb状态

  • arangod没有运行

但是我仍然可以使用arangosh连接arangodb服务器。

我不知道为什么会这样,有帮助吗?

arangodb

2
推荐指数
1
解决办法
840
查看次数

图形数据库建模:多边缘优于具有属性的单边缘?

这适用于将映射元数据的项目.还有更多的节点,但这个特殊的节点成了团队中的争论.

哪种模型会产生最佳查询性能?或者没关系?

选项1

权限元数据显式为节点之间的边缘.

选项2

权限元数据位于边的属性内.

选项3

???

元数据的图形建模:哪一个更好?

database modeling graph neo4j arangodb

2
推荐指数
1
解决办法
1377
查看次数

ArangoDB提前请求唯一密钥

我正在开发一个实时网络应用程序.后端是NodeJS和ArangoDB.我想在创建文档之前生成并向Web应用程序发送一个唯一的_key.这样,可以快速创建文档,而无需等待来自服务器的响应和新生成的ID.澄清:

  1. 用户登录和Web应用程序从ArangoDB接收唯一密钥(通过NodeJS)
  2. 用户创建一个新文档,Web App为其分配在步骤1中给出的唯一键
  3. Web应用程序立即请求新的唯一密钥,以便在使用前一个密钥时使用
  4. 用户使用步骤1中的唯一键将新创建的文档保存到数据库中的多个集合之一
  5. Web应用程序更新文档的本地缓存,而无需等待数据库中的自动生成密钥
  6. 从第2步开始

这只是对预期工作流程的粗略概述.我相信CouchDB有一个为用户提供唯一ID的功能:http://docs.couchdb.org/en/1.6.1/api/server/common.html?highlight = id# get--_uuids

我确实在ArangoDB文档中找到了这段代码:

FOR i IN 1..10
  INSERT { value: i } IN test
  RETURN { _key: NEW._key, value: i }
Run Code Online (Sandbox Code Playgroud)

它在集合中创建一批唯一键.但是,我不确定这里生成的密钥对于所有集合是否是唯一的,或者更可能的是,它们是为它们生成的集合.我的应用程序需要一个可用于任何集合的密钥.

有没有办法获取可以在ArangoDB的多个集合中使用的一个或多个唯一键?有没有不同的方法来解决这个问题?

document key unique generated arangodb

2
推荐指数
1
解决办法
849
查看次数

在pyarango arangodb中创建唯一索引

我正在尝试为我的收藏添加一个唯一索引.我正在编写代码:

conn = Connection()
db = conn['textBook']
db['Users'].ensureHashIndex('word', unique = True);
Run Code Online (Sandbox Code Playgroud)

(有''用户'集合的数据库'textBook'.)

pyArango.theExceptions.CreationError:错误的参数.错误:{u'errorMessage':u'bad parameter',u'errorNum':10,u'code':400,u'error':True}

它在函数_create中创建索引时出现(引发CreationError(data ['errorMessage'],data))

哪些参数不正确?

python arangodb

2
推荐指数
1
解决办法
313
查看次数

找到两个顶点之间的所有路径

如何在arangodb 3.1中获得深度为n的两个顶点之间的所有路径?我在AQL文档中找到的唯一可能性是最短路径.但我想得到所有的路径,而不仅仅是最短路径.

谢谢你的帮助!

arangodb

2
推荐指数
1
解决办法
647
查看次数

如何在javascript字符串中使用\n

例:

var i = 'Hello \n World'
console.log(i)
Run Code Online (Sandbox Code Playgroud)

会回来:

Hello
World
Run Code Online (Sandbox Code Playgroud)

而且我希望它返回

Hello \n World
Run Code Online (Sandbox Code Playgroud)

不渲染新行,因为我打算将其存储在数据库中.


对于那些想要在数据库中存储的人

您不需要转义,因为您的文档数据库将执行JSON.strigify,我使用ArangoDB并且它工作得非常好,感谢@PaulPro

javascript string arangodb console.log

2
推荐指数
1
解决办法
1万
查看次数