当您尝试通过 Docker 安装 ArangoDB 时:
docker run -e ARANGO_ROOT_PASSWORD=password -p 8529:8529 -d --name arangodb arangodb
抛出以下错误:
Unable to find image 'arangodb:latest' locally
latest: Pulling from library/arangodb
docker: no matching manifest for linux/arm64/v8 in the manifest list entries.
See 'docker run --help'.
Run Code Online (Sandbox Code Playgroud) ArangoDB是一个灵活的多模型数据库服务器,具有非常好的功能和大量良好的文档.这是一个年轻的,非常有前途的开源项目,其社区不断发展,但现实世界的例子并不多.
一个常见的现实世界的例子是用户注册和认证.在大多数应用程序中都需要它.
那么,如何使用ArangoDB在PHP中进行用户注册和身份验证?
ArangoDB提供文档和边缘作为生成图形的低级方法.
假设我们已经设置了一些包含顶点和边的图.该图表示顶点之间的关系.
v2是v1的孩子
v3是v2的孩子
v4是v3
的孩子v5是v1
的孩子v6是v5的孩子
我们希望能够查询:
如何在PHP中做到这一点?
有人可以帮助我解决以下问题.我正在ArangoDB中编写自定义FOXX应用程序,我需要创建边缘集合.随着db._create("example");我可以创建文档集,但我不知道如何改变它的类型.我试过db._create("example", {type: "edge"});但它不起作用.
在文档中写了
集合具有在创建集合时由用户指定的类型.目前有两种类型:文档和边缘.默认类型是文档.
我怎样才能做到这一点?
有谁知道ArangoDB是否支持分面搜索以及性能与其他支持它的产品(例如Solr,MarkLogic)或不支持它的产品(例如Mongo)相比如何?
在搜索网站,阅读文档以及搜索Google网上论坛后,我认为不会在任何地方进行讨论.
谢谢
在ArangoDB中,当一个集合被定义为允许用户定义的密钥时,密钥值的限制是什么?例如,它似乎是一个关键的"Name-2"工作,但一个关键"Name,2"给出ArangoError 1221: invalid document key错误.
对于arangodb,我知道它自己的查询语言AQL,据我所知,还有一个附加组件允许使用Gremlin进行图形遍历等.
在我的一个项目中,我们强烈使用SPARQL,因此:有没有办法使用SPARQL作为arangodb的查询语言?
最诚挚的问候,斯特凡
我试图使用AQL来更新整个节点集合,名为Nodes,取决于它们具有的边缘类型.
需求:
我的概念方法:
我尝试了什么
FOR v,e,p
In 1..10
ANY v
EntityRelationTest
OPTIONS {uniqueVertices:"global",bfs:true}
FILTER p.edges[*].relationType[0]== "EQUALS"
UPDATE v WITH { typeName2:"test1"} IN EntityTest
return NEW
Run Code Online (Sandbox Code Playgroud)
但我对arangodb AQL很新,有可能是上面的东西吗?
我正在使用ArangoDB,我正在查询一个名为的集合movies.它的数据结构是categories一个字符串列表.
public class movies
{
[DocumentProperty(Identifier = IdentifierType.Key)]
public string Key;
public List<string> categories;
public string desc;
public string img;
public List<vod_stream> streams;
public string title;
};
Run Code Online (Sandbox Code Playgroud)
这是查询语句:
var result = db.Query<movies>()
.Where(p => p.categories.Contains(id));
Run Code Online (Sandbox Code Playgroud)
id作为参数传递,我需要检索具有与id匹配的类别的所有电影.但是,上面的代码不起作用,因为result它给了我集合中的所有电影.
foreach (movies mov in result)
{
if (mov.categories.Contains(id) == false)
{ continue; }
// do something here
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是当我遍历结果中的项目时,同样的函数会返回false一些项目.但它只是在Linq声明中不起作用.
有人知道我的查询语句有什么问题吗?
我的目标是创建 arango 数据库转储(包含所有用户和密码、权限、数据库、集合、角色等),然后在另一台 arango 服务器(从头开始安装并为空)上完全恢复此数据)。
我使用的是单节点配置,arangodb版本是3.4.4 [linux]。
在 origin 上,我对每个数据库进行转储:
USER=root
PASSWORD=***
for db in $(arangosh --server.username "$USER" --server.password "$PASSWORD" --javascript.execute-string "db._databases().forEach(function(db) { print(db); });")
do
arangodump --output-directory /tmp/dump/"$db" --overwrite true --server.username "$USER" --server.password "$PASSWORD" --include-system-collections --server.database "$db"
done
Run Code Online (Sandbox Code Playgroud)
然后我将创建的文件夹移动到该服务器上的空 arangodb 服务器上:
arangorestore --input-directory "/tmp/dump/_system/"
arangorestore --input-directory "/tmp/dump/collection/"
arangorestore --input-directory "/tmp/dump/collection2/"
...one by one
Run Code Online (Sandbox Code Playgroud)
结果远远超出了我的预期,我只是获取root用户的_system数据库中的集合(没有其他用户,没有数据库)。
我究竟做错了什么?如何进行完整备份和恢复?
提前致谢。