Databases, Collections and Documents
1、创建集合
数据库是Collections的集合,Collections存储记录,记录即所谓Documents。Collections和关系数据库中的表是一个概念,documents就相当于table中的记录rows。
区别是你不需要预先定义有哪些列项,以及其属性。在任何collection的每一个document都可以有任何属性。在一个collection中的数据,在实际应用中当然要有基本一样的数据结构,但是数据库系统本身并没有强调它,无论您的数据看起来如何,它都将稳定,快速地运行。
在数据模型概念的章节,你可以阅读更多内容。
现在,您可以使用默认的_system数据库,并使用Web界面创建集合和文档。通过点击【COLLECTIONS】菜单,点击【Add Colleciton】按钮即可。
image.jpeg填入名称,比如info2021,其他配置不变,点击【save】按钮,即创建了一个新的collection,名称为info2021 。
image.jpeg2、插入数据
目前collection中没有记录。接下来我们创建记录:
image.jpeg单击右侧带有白色加号的绿色圆圈,以在此集合中创建第一个文档。
image.jpeg对话框将要求您输入_key。您可以将该字段保留为空白,然后单击“创建”以让数据库系统分配一个自动生成的(唯一)密钥。请注意,_key属性是不可变的,这意味着一旦创建文档便无法更改它。
输入一条记录,点击创建即可。
image.jpeg image.jpeg在内容展示的面板,直接可以修改数据,并可以按右下角保存按钮修改数据。
可以多插入几条记录,接下来就可以实践一下如何查出这些数据。
在info2021集合中,共插入4条数据,如下所示:
image.jpeg3、操作数据库
查询数据:
在info2021集合中,查询ID是19579的记录:
return document("info2021","19579")
#或
return document("info2021/19579")
返回结果如下:
image.jpegRETURN DOCUMENT( ["info2021/19579", "info2021/19768", "info2021/20234"] )
如果想返回表中所有的记录,执行如下语句,进行遍历:
FOR info IN info2021 RETURN info
它表示遍历info2021中的每个文档,并使用info作为变量名,我们可以使用该变量名引用当前的用户文档。它也可以被称为doc, u或者ahuacatlguacamole,这取决于你。然而,建议使用一个简短的自我描述的名字。
结果如下:
image.jpegFOR info IN info2021 SORT info._key RETURN info
@插入数据:
INSERT { "name": "xiaowang1", "age": 25, "company": "baidu", "insert_time": "2020/12/21 10:54:13" } INTO users
image.jpeg
更新数据,将_key为19579的记录的age字段从25更新到60:
执行前:
image.jpegUPDATE "19579" WITH { age: 60 } IN info2021
image.jpeg
删除数据:
根据_key值,去删除对应的记录
REMOVE "19579" IN info2021
我们还可以循环删除文档(对于INSERT,UPDATE和REPLACE来说也是如此):
FOR info IN info2021 FILTER info.age >= 30 REMOVE info IN info2021
来自SQL
如果您使用过关系数据库管理系统(RDBMS)(例如MySQL,MariaDB或PostgreSQL),则将熟悉其查询语言,即SQL(结构化查询语言)。
ArangoDB的查询语言称为AQL。尽管数据库系统的数据模型不同,但两种语言之间还是有一些相似之处。最显着的差异可能是AQL中循环的概念,这使其更像是一种编程语言。它更适合无模式模型,使查询语言非常强大,同时又易于读取和编写。
要开始使用AQL,请看一下我们对SQL和AQL的详细比较。在迁移到ArangoDB时,它还将帮助您将SQL查询转换为AQL。
具体请参考:https://www.arangodb.com/community-server/sql-aql-comparison/
更多AQL相关语法就参考官网:https://www.arangodb.com/docs/stable/aql/index.html
以上完成了arangodb的基本入门的学习和科普。
网友评论