第1关:创建数据库:
本关评测是在Linux环境下进行的,MongoDB的安装与配置测评系统均已默认完成。
为了完成本关任务,你需要掌握:1.如何连接数据库,2.如何创建数据库。
连接数据库
MongoDB安装完成后,可以通过pgrep mongo -l
命令来查看是否已经启动。
在操作数据库之前,需要连接它,连接本地数据库服务器,输入命令:mongo
。
其中连接的警告可以不用管,只要最下方出现>
符号,说明连接成功。
创建数据库
连接上MongoDB之后就可以进行数据库的操作了,接下来我们创建一个名为Testdb
的数据库,命令:use Testdb
(如果数据库不存在,则创建数据库,否则切换到指定数据库):
查看所有数据库我们可以用命令:show dbs
:
然而并没有我们刚创建的Testdb
数据库。要想显示它,我们需要向数据库插入一些数据:db.Testdb.insert({_id:1,name:"王小明"})
:
现在,就可以看到我们创建的数据库Testdb
了。
删除数据库
MongoDB删除数据库需要先切换到该数据库中:
use Testdb
然后执行删除命令:
db.dropDatabase()
编程要求
在右侧命令行中连接MongoDB,创建一个名为mydb
的数据库,并插入数据_id:1,name:"李小红"
。
测试说明
操作完之后点击评测,我会对你的创建的数据库和插入的数据进行测试,如果数据库创建成功且数据插入完成,我会输出如下结果。
提示:如果右侧命令行无响应,是因为云端二十分钟会自动关闭容器,重新刷新页面即可解决问题,刷新之后环境会重置,所以你还需要重新创建数据库和表。
第2关:创建集合:
MongoDB数据库中的集合相当于MySQL数据库中的表。
为了完成本关任务,你需要掌握:1.如何在指定的数据库创建集合,2.查看集合,3.删除集合。
在指定的数据库创建集合
先进入指定数据库Testdb
: use Testdb
在Testdb
数据库中创建创建固定集合test
,整个集合空间大小 512000 KB
, 文档最大个数为 1000
个。
db.createCollection("test", { capped : true, autoIndexId : true, size : 512000, max : 1000 } )
capped
:是一个布尔类型,true
时创建固定集合,必须指定size
。固定集合指有固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。默认为false
。autoIndexId
:也是一个布尔类型,如为true
,自动在_id
字段创建索引。默认为false
。size
:为固定集合指定一个最大值(以字节KB计)。max
:指定固定集合中包含文档的最大数量。
不过,和MySQL不同的是,在 MongoDB 中,你不一定需要先创建集合。当你插入一些文档时,MongoDB 会自动创建集合。
创建集合命令:db.集合名.insert()
。(注意:一条数据用大括号{}
括起来,多条数据用[]
将所有数据括起来)
db.mytest2.insert([{"name" : "王小明","sex":"男"},{"name" : "李小红","sex":"女"}])
默认id
MongoDB 中存储的文档必须有一个_id
键(如果我们插入数据的时候未指定_id
,系统会自动生成一个默认的id
)。这个键的值可以是任何类型的,默认是个ObjectId
对象。
在一个集合里面,每个文档都有唯一的_id
值,来确保集合里面每个文档都能被唯一标识。
如果有两个集合的话,两个集合可以都有一个值为123
的_id
键,但是每个集合里面只能有一个_id
是123
的文档。