开发者学堂课程【场景实践 - 基于MongoDB实现商品管理系统:Mongodb的体系结构和客户端配置】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/728/detail/12997
Mongodb 的体系结构和客户端配置
内容介绍:
一、Mongodb 的体系结构
二、Mongodb 的数据操作
一、Mongodb的体系结构
Mongodb 是非关系型数据库,接下来学习 Mongodb 和关系型数据库结构的区别。
一个运行着 mongodb 的数据库可以看做是一个 mongodb server。该 server 由实例和数据库构成。在一般情况下,一个 mongoDB Server 机器上包含一个实例和多个与之对应的的数据库。但是在特殊情况下,允许一个 mongoDB Server 上有多个实例和多个数据库。但在关系型数据库中,比如 MySQL,它是先有数据库database,数据库中有表、行记录。
Mongodb 的结构(集合、文档)构成了 mongodb 的数据库。这个概念和 oracle 的系统结构的概念类似。Mongodb主要是由文档 (document),集合(Collection)、数据库(database)这三部分组成。结构是面向用户的,用户在使用mongodb开发程序的时候,使用的就是该结构。
MongoDB和关系型数据库的对比图如下所示:
SQL术语概念 |
MongoDB术语概念 |
解释说明 |
database |
database |
数据库 |
table |
collection |
数据库表/集合 |
row |
document |
数据记录行/文档 |
column |
field |
数据字段/域 |
index |
index |
索引 |
table joins |
|
表连接,MongoDB不支持 |
primary key |
primary key |
主键,MongoDB自动将_id字段设置为主键 |
说明:
1)关系型数据库中表的一条行记录必须保证拥有每一个字段,并且每一个字段都一样。而 MongoDB 的每一个 document 中的数据结构有可能是不一样的。可以在程序中随意的动态的定义 document 的结构。可以随意的自定义 document 的结构。document 相当于数据库表中的一行记录。
2)Collection 相当于关系数据库中的表,是由多个document组成的。
3)很多 collection 结合在一起,就形成了db。一个mongodb server支持多个数据库。
4))关系型数据库查询语句使用 SQL,MongoDB 查询使用内置find函数,即基于BSON 的特殊查询工具。MongoDB 的文档(document),集合(Collection)、数据库(database)这三部分之间的关系如下图所示:
二、Mongodb 的数据操作
1.启动Mongodb的服务器
双击如下批处理文件: mongo.bat
2.创建客户端并启动
再创建一个.bat文件:mongoClient.bat
输入如下命令: mongo.exe 127.0.0.1:27017/admin
(mongo.exe是 mongo bin目录下的核心命令,启动客户端;127.0.0.1是由于mongodb安装在本地,所以是本地地址;27017是mongodb的默认端口;admin是超级管理员登录)
在启动客户端之前要确认服务端开启。
双击 mongoClient.bat,如出现下面内容,则表示客户端联系到服务端
C:\Users\tiansuo\Desktop]mongo>mongo.exe 127.0.0.1:27017/admin
MongoDB shel1 version: 2.0.6
connecting to: 127.0.0.1:27017/admin
通过 help 命令可以查看帮助文档
>help
db.help()help on db methods
db. myco11.help()help on col1ection methods
rs.help()help on replica set methods
help admin
administrative help
he1p connect connecting to a db he1p
help keys key shortcuts
help misc
misc things to know
help mr
mapreduce
show dbs
show database names
show collections
show users in current database
show users
show users in current database
show profi1e
show most recent system. profile entries with time >= 1ms
show logs
show the accessib1e 1ogger names
show log [name]
prints out the 1ast segment of 1og in memory,'g1oba1’is default
use <db_name>
set current database
db.foo.find() listobjects in collection foo
Db.foo.find({a:1}) list objects in foo where a == 1
it result of the last line evaluated; use to further iterate
DBQuery.shellBatchSize = x set default number of items to display on shell
exit quit the mongo shell
>
(help 是端口输入能查看一些相关的命令,show dbs 在 mongodb 中查看所有的数据库用,show users 查看所有的用户,use <db_name> 切换到某个数据库)