arango规则定义
时间: 2023-02-06 13:26:10 浏览: 72
ArangoDB 是一个开源的多模型数据库管理系统,支持存储和查询文档、图形和 key-value 数据。
在 ArangoDB 中,规则是一种特殊的函数,它可以在数据库中的特定操作发生时触发。例如,当新文档被插入数据库中的特定集合时,规则就会触发。规则可以用来执行各种各样的任务,例如更新其他文档、发送通知或执行其他数据库操作。
要定义规则,需要使用 ArangoDB 的 AQL 语言。下面是一个示例,该示例定义了一个规则,该规则在插入新文档到集合 "users" 时触发:
```
FOR doc IN INSERTED
FILTER doc.type == "user"
UPDATE doc WITH { lastLogin: DATE_NOW() } IN users
RETURN NEW
```
在这个示例中,当新文档插入到 "users" 集合时,规则会执行以下操作:
1. 对所有被插入的文档进行过滤,只保留类型为 "user" 的文档。
2. 对所有符合条件的文档执行 UPDATE 操作,将文档的 "lastLogin" 字段设置为当前时间。
3. 返回所有被修改的文档。
这只是一个简单的示例,实际上,规则可以执行复杂的任务,可以
相关问题
arango 查询语句
ArangoDB 支持多种查询语言,如 AQL (ArangoDB Query Language)、JavaScript 等。以下是一些常用的 AQL 查询语句示例:
1. 查询集合中所有文档
```
FOR doc IN collection RETURN doc
```
2. 查询指定条件的文档
```
FOR doc IN collection FILTER doc.field == value RETURN doc
```
3. 模糊查询
```
FOR doc IN collection FILTER LIKE(doc.field, "%pattern%") RETURN doc
```
4. 查询指定条件的文档,并指定返回的字段
```
FOR doc IN collection FILTER doc.field == value RETURN { field1: doc.field1, field2: doc.field2 }
```
5. 对查询结果进行排序
```
FOR doc IN collection SORT doc.field ASC RETURN doc
```
6. 对查询结果进行分页
```
FOR doc IN collection LIMIT pageSize * (pageNum - 1), pageSize RETURN doc
```
7. 对查询结果进行聚合
```
FOR doc IN collection FILTER doc.field == value COLLECT field = doc.field WITH COUNT INTO count RETURN { field: field, count: count }
```
以上是一些常用的 AQL 查询语句示例,您可以根据具体的需求进行调整和扩展。同时,ArangoDB 还支持原生的 JavaScript 查询语句,您也可以根据需要进行选择使用。
arango基础语法
下面是ArangoDB基础语法:
1. 显示所有数据库列表:
```
SHOW DATABASES
```
2. 切换至目标数据库:
```
USE <database_name>
```
3. 显示当前数据库中的所有集合:
```
SHOW COLLECTIONS
```
4. 创建集合:
```
CREATE COLLECTION <collection_name>
```
5. 删除集合:
```
DROP COLLECTION <collection_name>
```
6. 插入文档:
```
INSERT <document> INTO <collection_name>
```
7. 查询文档:
```
FOR <document> IN <collection_name> FILTER <query> RETURN <document>
```
8. 更新文档:
```
UPDATE <document_key> WITH <new_document> IN <collection_name>
```
9. 删除文档:
```
REMOVE <document_key> IN <collection_name>
```
10. 对查询结果进行排序:
```
FOR <document> IN <collection_name> SORT <sort_order> RETURN <document>
```
11. 对查询结果进行限制:
```
FOR <document> IN <collection_name> LIMIT <limit> RETURN <document>
```
12. 对查询结果进行分页:
```
FOR <document> IN <collection_name> LIMIT <offset>, <limit> RETURN <document>
```
其中,`<database_name>` 代表目标数据库的名称,`<collection_name>` 代表目标集合的名称,`<document>` 代表文档,`<query>` 代表查询条件,`<sort_order>` 代表排序条件,`<limit>` 代表限制条件,`<offset>` 代表偏移量。注意在ArangoDB中,文档的键值对使用属性名和属性值组成,属性名是字符串,属性值可以是任何类型。