我目前正在尝试通过 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)
我在设置权限配置时还缺少什么吗?或者问题可能出在其他地方。
我不会发布完整的代码,因为它是公司拥有的软件。
我有个问题。我正在使用ArangoDB enterprise:3.8.6通过Docker. 但不幸的是我的查询花费的时间比30s. 当失败时,错误是arangodb HTTPConnectionPool(host='127.0.0.1', port=8529): Read timed out. (read timeout=60)。
我怎样才能获得包含所有文档的完整集合而不出现任何错误?
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 …
有没有办法指定Foxx.Model的可接受值?
像理想的东西:
var ExampleModel = Foxx.Model.Extend({},
{
attributes: {
field: { type: "string", required: true, values: ['one', 'two'] }
}
});
Run Code Online (Sandbox Code Playgroud)
提前致谢.
一些背景信息:我有一个"问答"网站,里面有很多帖子和用户.数据存储在MSSQL数据库中.我很感兴趣的是图形数据库如何帮助用户产生有趣的结果,比如建议类似的用户或建议相关的帖子.
我设法从测试数据库导入所有帖子和用户(只有他们的ID)和"post to post"和"post to user"关系到ArangoDB数据库,最后得到4个集合:
然后我用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个帖子(在我看来并不多).
我还尝试了另外两种方法来实现该算法:
从文档中,ArangoDB建议在这种情况下使用图形函数.所以我不赞成使用Join(给我一种感觉,我也可以在SQL中做到这一点,所以为什么要使用图形数据库).
有任何建议如何使GRAPH_NEIGHBORS快速运行而没有任何错误?或者任何其他建议如何构建图形,比如图形可以增长多大?
我无法在arangodb docker容器中停止arangodb服务器。
当我执行不到一个时,
$ / etc / init.d / arangod停止
$ service arangodb状态
但是我仍然可以使用arangosh连接arangodb服务器。
我不知道为什么会这样,有帮助吗?
这适用于将映射元数据的项目.还有更多的节点,但这个特殊的节点成了团队中的争论.
哪种模型会产生最佳查询性能?或者没关系?
选项1
权限元数据显式为节点之间的边缘.
选项2
权限元数据位于边的属性内.
选项3
???
我正在开发一个实时网络应用程序.后端是NodeJS和ArangoDB.我想在创建文档之前生成并向Web应用程序发送一个唯一的_key.这样,可以快速创建文档,而无需等待来自服务器的响应和新生成的ID.澄清:
这只是对预期工作流程的粗略概述.我相信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的多个集合中使用的一个或多个唯一键?有没有不同的方法来解决这个问题?
我正在尝试为我的收藏添加一个唯一索引.我正在编写代码:
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))
哪些参数不正确?
如何在arangodb 3.1中获得深度为n的两个顶点之间的所有路径?我在AQL文档中找到的唯一可能性是最短路径.但我想得到所有的路径,而不仅仅是最短路径.
谢谢你的帮助!
例:
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