MongoDB
MongoDB是基于分布式文件存储的数据库,其数据存储是用BSON(JSON的二进制形式),其表现为键值对的形式。
MongoDB与MySQL的比对
MySQL | MongoDB | |
---|---|---|
table(表格) | collection(集合) | 说明 |
view(视图) | view(视图) | 都支持 |
record(记录) | document(文档) | 概念类似 |
column(行) | filed(域) | 这里的域是你自己增加数据时增加的 |
index(索引) | index(索引) | 都支持 |
table joins(连结) | 不支持 | |
primary key(主键) | primary key(主键) | MongoDB会为每一个没有主键(_id域)的document添加一个_id域 |
数据类型
之前说到MongoDB是以BSON存储的,BSON的每种格式都有一个数字,如下表
类型 | 数字 | 别名 |
---|---|---|
32-bit integer | 16 | "int" |
64-bit integer | 18 | "long" |
Double | 1 | "double" |
String | 2 | "string" |
Bealoon | 8 | "bool" |
Object | 3 | "object" |
Array | 4 | "array" |
Binary data | 5 | "binData" |
ObjectId | 7 | "objectId" |
Date | 9 | "date" |
Regular Expression | 11 | "regex" |
Null | 10 | "null" |
服务启动
sudo mongod --fork -f ./mongod.conf
连接与退出
由于个人用的客户端是mongodbsh,连接的话其默认输入的是一个url就行了(账号密码放前面),协议用mongodb,主机名可以指定,默认端口是27017。退出则用exit命令。
# 连接
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
# 退出
> exit
用户级操作
这个单独抽出来,之后写一篇文章
Database级操作
# 展示所有database
> show dbs
# 切换数据库
> use database_name
# 创建数据库(这个切换数据库后,然后创建新的数据就是创建数据库)
# 删除数据库
> db.dropDatabase()
# 修改数据库名
> db.copyDatabase('old_name', 'new_name');
> use old_name
> db.dropDatabase();
# 查看当前数据库(其实箭头前就是用的数据库)
> db
# 查看数据库可用的函数(其实这个里面可以查看db级别的所有函数,超好用)
> db.help()
Collection级别操作(默认创建document的时候会创建collection)
# 显示所有集合
> show collections
# 增加集合
> db.createCollection("collection_name")
# 删除集合
> db.collection_name.drop()
# 修改集合名
> db.renameCollection("new_name")
文档级别操作
# 插入
> db.collection_name.insert(<doucument>)
> db.collection_name.insertOne(<document>)
> db.collection_name.insertMany(<doucument>)
# 删除
> db.student.remove(<query>)
# 更新
> db.collection.update(
<query>,
<update>,
<options>
)
query: 查询条件, 相当于sql语句的where
update: 更新文档内容
options: 选项
# 查询
> db.collection.find(query, projection)