这篇博客主要是记录自己对mongodb的学习,毕竟mongodb被使用的并不多,免得当不用mongodb后,对mongodb忘记的一干二净。
一.mongodb的基本介绍
mongodb是一种NOSQL数据库,和mysql这样的数据库最大的不同就是它扩展很灵活,没有数据列的限制,不用像mysql那样如果要新增一个字段就需要改表结构,所以增加字段很方便,而且列字段的长度也不用设置。但mongodb也没有关系型数据库其他的功能,例如多行事物和联合查询(join)
mongodb和mysql的结构对比
mongodb | mysql |
数据库 | 数据库 |
集合 | 表 |
文本 | 行 |
文本中存储的是一个个的键值对,例如
7.内嵌文档,例如{"a":{"b":"c"}}。
8.ObjectId,12个字节的id,是文档唯一标示,每新增一个文档,mongodb都会自动给这个文档创建一个ObjectId对象。
9.正则表达式。
二.mongodb增删改查
这里我没有用windows上的cmd来演示,而是用mongodb的可视化工具Robo 3T来演示。
1.查询和创建数据库
show dbs
显示当前连接下有多少数据库
如果monday数据已经存在,那么就选中monday数据库,如果monday不存在,那就创建monday数据库,例如下图就创建了monday数据库,
但是如果数据库monday里面没有任何数据,这时运行show dbs,在显示结果里是没有monday的。
use monday
在数据库下面创建集合,也就是表。
db.createCollection("use")
显示当前数据库中的集合
show collections
删除use集合
db.use.drop()
删除当前数据库
db.dropDatabase()
2.新增数据
新增关键字insert,新增的文档要用花括号括起来,键值对之间用逗号隔开,value值如果是字符串型得用双引号,key值可加可不加双引号。
db.use.insert({"name":"素还真","age":"26","type":"军师","address":"苦境"})
批量新增数据
db.use.insertMany([{"name":"一页书","age":32,"type":"战士","address":"苦境"},{"name":"倦收天","age":28,"type":"战士","address":"道境"}])
批量插入,注意,一定要有中括号,两个文档之间用逗号隔开。
3.查询数据
mongodb查询数据的关键字是find。db.use.find()
db.use.find({"name":"素还真","age":"26"})
db.use.find({"age":{$gt:27}})
db.use.find({"address":{$in:["苦境","魔界"]}})
db.use.find({$or:[{"address":"苦境"},{"name":"倦收天"}]})
select * from student where name like ’%joe%’
上面的查询语句相当于
db.student.find({name:{$regex:/joe/}})
limit(),skip(),sort()函数
db.use.find().limit(2)
db.use.find().skip(1)
db.use.find().sort({"age":1})
3.mongodb的修改操作
db.use.update({"age":26},{$set:{"name":"素还真","address":"苦境","type":"智慧"}})
4.mongodb的删除操作
remove只会删除集合中的文档,而不会删除集合以及集合里面的索引
drop会将集合删除,所以集合里的数据和索引都会删除