Arangodb简介

简介:

Arangodb官网:https://www.arangodb.com/

GitHub开源代码:https://github.com/arangodb/arangodb-java-driver

Maven依赖配置:

<dependencies>
  <dependency>
    <groupId>com.arangodb</groupId>
    <artifactId>arangodb-java-driver</artifactId>
    <version>4.2.2</version>
  </dependency>
</dependencies>

建立连接

ArangoDB arangoDB = new ArangoDB.Builder()
                .host("127.0.0.1", 8529)
                .user("myuser")
                .password("mypassword")
                .useProtocol(Protocol.VST)
                .build();

Database操作

创建数据库:

arangoDB.createDatabase("myDatabase");
删除数据库:

arangoDB.db("myDatabase").drop();
Collection操作

创建集合:

arangoDB.db("myDatabase").createCollection("myCollection", null);

清空集合数据:

arangoDB.db("myDatabase").collection("myCollection").truncate();
删除集合:

arangoDB.db("myDatabase").collection("myCollection").drop();
Document操作

支持三种类型的数据作为Arangodb中的文档: Java POJO、VelocyPack、Json字符串,下面以Java POJO为例

定义文档Java POJO对象:

public class User {
    private String _key;
    private String name;
    private int age;
 
    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }
 
    public User() {
 
    }
 
  /*
     *  + getter and setter
     */
}

插入单条文档:

User user = new User("zhangsan", 20);
        user.set_key("001");
        arangoDB.db("myDatabase").collection("myCollection").insertDocument(user);

注:也可以不设置_key值,则系统会自动生成一个key

批量插入文档:

 Collection<User> documents = new ArrayList<User>();
        User user1 = new User("zhangSan", 20);
        User user2 = new User("liSi", 21);
        User user3 = new User("wangWu", 22);
        documents.add(user1);
        documents.add(user2);
        documents.add(user3);
 
        arangoDB.db("myDatabase").collection("myCollection").insertDocuments(documents);

修改文档:

 User user = new User("zhangsan1", 201);
        user.set_key("001");
        arangoDB.db("myDatabase").collection("myCollection").updateDocument(user.get_key(),user);

修改和替换的区别:

修改:只会修改提供的字段,替换:会将提供的字段替换原有的整个文档,假设原有文档内容为:

`{
"age": 20,
"name": "zhangsan"
}`
修改:

arangoDB.db("myDatabase").collection("myCollection").updateDocument(user.get_key(),"{\"weight\":130}");

结果新增了一个字段:

`{
"age": 20,
"name": "zhangsan",
"weight": 130
}`
替换:

arangoDB.db("myDatabase").collection("myCollection").replaceDocument(user.get_key(),"{\"weight\":130}");

结果原有文档中的所有内容被替换成一个字段:

`{
"weight": 130
}`
删除文档:

 arangoDB.db("myDatabase").collection("myCollection").deleteDocument(user.get_key());

文档读取:

读取成json字符串:

 String json = arangoDB.db("myDatabase").collection("myCollection").getDocument("001", String.class);

读取成Java POJO对象:

 User user = arangoDB.db("myDatabase").collection("myCollection").getDocument("001", User.class);

使用_id读取:

  String json = arangoDB.db("myDatabase").getDocument("myCollection/001", String.class);
目录
相关文章
|
JSON 网络协议 机器人
ROSBridge简介以及理解使用(下)
ROSBridge简介以及理解使用(下)
1753 0
|
XML 安全 网络协议
netconf简介
netconf简要
|
监控 Oracle 关系型数据库
oratop的使用简介
oratop是采用类似top命令的方式实时监控oracle数据库,包括rac和non-rac数据库
116 0
|
存储 编解码
H264简介
H.264 原始码流(又称为裸流),是有一个接一个的 NALU 组成的,而它的功能分为两层:视频编码层(VCL, Video Coding Layer)和网络提取层(NAL, Network Abstraction Layer),其中,前者负责有效表示视频数据的内容,而后者则负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的传输。
H264简介
|
网络协议 开发工具 Android开发
AndroidDevTools简介
来源:http://www.androiddevtools.cn/ Android SDK在线更新镜像服务器 中国科学院开源协会镜像站地址: IPV4/IPV6: http://mirrors.
2900 0
|
网络协议 机器人 Java
ROSBridge简介以及理解使用(上)
ROSBridge简介以及理解使用(上)
2623 0
ROSBridge简介以及理解使用(上)
|
索引 容器
NSIndexSet 简介
NSIndexSet (以及它的可修改子类, NSMutableIndexSet) 是一个排好序的,无重复元素的整数集合。它看上去有点像 支持离散整数的 NSRange .它能用于快速查找特定范围的值的索引,也能用于快速计算交集, 同时,Foundation collection class 提供了很多好用的方法,方便你使用 NSIndexSet.
380 0
NSIndexSet 简介
|
C# 编译器 存储
|
Android开发 API 测试技术
[译] WorkManager 简介
这篇文章是 WorkManager 系列中的第一篇。我们将探讨 WorkManager 的基础知识,如何以及何时使用它,以及幕后发生了什么。然后我们将深入研究更复杂的用例。
737 0
|
JavaScript 前端开发 C++
cheerp 简介
这个文章主要介绍了为什么要用cheerp技术以及和其他对标的技术对比,他的闪光点在哪里。 WebAssembly 是一种中间码用于加速浏览器端应用,目前有多种语言可以编译或者交叉到这种格式。当然这个不是本文的内容,详细了解请移步 wasm官网 目前支持: cc++是官方推荐的方式,详细使用见文档;其他语言 AssemblyScript:语法和 TypeScript 一致,对前端来说学习成本低,为前端编写 WebAssembly 最佳选择; Rust:语法复杂、学习成本高,对前端来说可能会不适应。
2703 0