入门
文档是MongoDB的基本单元,类似于关系数据库中的行,而集合是文档的聚合,因此集合类似关系数据库中的表,在一个集合中可以装在不同模式的文档。每个文档都会有一个_id
的主键。
一个MongoDB实例可以建立多个数据库,每个数据库都可以创建多个集合,而MongoDB通过基于JavaScript
的shell来管理数据库。
文档
文档是MongoDB的核心概念,在MongoDB中一个文档就是一个键值对的集合,例如:{"foo", 3, "bar":"4"}
。文档的键是字符串,且不能有重复的键出现。
集合
一组文档会形成集合,一般来说集合是无模式的,你可以把不同类型的文档都放在一个集合中,但是这样对于开发者来说,就是一个噩梦。将相同类型的文档放置在一个集合中,会使数据更加集中,同时也更利于查询,因为索引是根据集合来建立的,这样相同的文档在一个集合中,索引将会更有效。
数据库的命名一般是小写,有一些数据库是默认保留的。
在安装了Docker的机器上,运行
sudo docker run --name mongo-test -d -p 27017:27017 mongo:3.6.9
,会拉起一个MongoDB(版本是3.6.9),同时端口是27017。
保留的数据库是: admin,local和config。
运行MongoDB Shell
MongoDB自带了一个Javascript Shell,可以使用命令行的方式和MongoDB进行交互,可以使用它进行管理操作,检查状态等。
可以使用
sudo docker exec -it mongo-test mongo
,其中mongo-test
是MongoDB对应的docker实例名称。
weipeng2k@weipeng2k-workstation:~$ sudo docker exec -it mongo-test mongo
MongoDB shell version v3.6.9
connecting to: mongodb://127.0.0.1:27017
Implicit session: session {
"id" : UUID("af9c08c0-3bec-4677-b0df-86bb37b0a7c7") }
MongoDB server version: 3.6.9
>
可以在mongodb shell中执行javascript程序,例如:
> x=200
200
> print(x)
200
可以使用use $db
命令来进行数据库切换,比如:切换到test
数据库。
> use test
switched to db test
> db
test
可以使用
show dbs
或者在一个数据库中使用show collections
来查看当前MongoDB实例部署的数据库,以及当前数据库中的集合。这些命令和mysql很相似。
创建数据
可以在MongoDB Shell中进行数据的定义,然后通过执行db.$collection_name.insert($variable)
来进行数据的插入,通过执行这个命令,以将一个文档插入到集合中。
> author = {
"_class" :