MongoDB 学习 入门教程 超详细 逐步截图

1.安装

2.测试使用

3.将mongod作为服务


以上内容都不讲 QAQ

4.MongoDB的概念

1)建库:
一个mongodb中可以建立多个数据库
mongodb的单个实例中可以容纳多个独立的数据库

2)文档:
文档是mongodb中最核心的概念,是其核心单元
将文档类比成关系数据库中的每一行数据
多个键及其关联的值有序的放置在一起就是文档
需要注意的是:
a)文档中的键/值对是有序的
b)文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型
c)mongoDB区分类型和大小写
d)mongoDB的文档不能有重复的键
e)文档的键是字符串,键可以使用任意UTF-8字符

3)集合:
集合是一组文档的组合,如果将文档类比成关系数据库中的行,那么集合就可以类比成数据库的表
在mongoDB中的集合是无模式的,也就是说集合中所存储的文档的结构可以是不同的

4)mongoDB的数据类型

5.mongoDB的使用

1)在终端中启动
a)指定数据库地址,建库

mongod --dbpath=数据库地址(一个空的文件夹即可)

b)启动数据库,在终端中输入

mongo

进入交互模式
这里写图片描述
c)数据库启动后可以通过可视化工具进行管理
推荐Robo 3T
这里写图片描述
2)操作mongodb
a)创建数据库 ,datebase_name是你要创建数据库的名字,可以根据你的喜好创~

use datebase_name

如果数据库不存在,则创建数据库。如果存在,则切换到该数据库
这里写图片描述

b)查看所有的数据库

show dbs

没有显示我们刚创建的数据库datebase_name,只有自动生成的几个库
这里写图片描述
不要惊慌
因为数据库中没有数据,所以没有显示,我们向其中插入一条数据

扫描二维码关注公众号,回复: 2215532 查看本文章
db.datebase_name.insert({name:"zhangsan",age:20})

然后再使用show dbs 即可显示
这里写图片描述
c)查看当前使用的数据库

db

这里写图片描述

d)删除数据库

db.dropDatabase()

这里写图片描述

e)断开连接

exit

这里写图片描述
居然还会说bye
f)查看命令api

help

这里写图片描述

3)操作集合

a)查看帮助api

db.worker.help()

这里写图片描述
b)创建集合(collection) bbb

db.createCollection("bbb")

这里写图片描述

c)查看当前数据库下有哪些集合(collection)

show collections

这里写图片描述
d)删除当前数据库中的集合(collection)

db.bbb.drop()

这里写图片描述

4)操作文档
a)插入文档:
使用insert()插入文档

db.bbb.insert({name:"bbb",age:6})

这里写图片描述
插入多个文档

db.bbb.insert([{name:"lisi",age:5},{name:"wangwu",age:4}])

这里写图片描述

使用save()插入文档
如果不指定_id字段,save()类似于insert()方法。

db.bbb.save({name:"sb",age:100})

这里写图片描述

如果指定_id字段,则会该_id的数据。

db.bbb.save({_id:ObjectId("123456789123456789123456"),name:"lili",age:22})

这里写图片描述
在这里需要注意的是,ObjectId只能是24位,不能多也不能少,使用16进制。
因为ObjectId 使用12 字节的存储空间,每个字节两位十六进制数字,是一个24 位的字符串

b)更新文档
使用update()更新已存在的文档
将name为sb的数据的name修改为dasb
如果有多条数据为sb,则只修改第一条

db.bbb.update({name:"sb"},{$set:{name:"dasb"}})

这里写图片描述

将name为dasb的数据的age修改为10,multi:true的意思为如果有多条数据,则全部修改。multi默认为false,即只修改第一条数据

db.bbb.update({name:"dasb"},{$set:{age:10}},{multi:true})

这里写图片描述

将name为dasb的数据的age在原本的基础上+2

db.bbb.update({name:"dasb"},{$inc:{age:2}})

这里写图片描述

使用save()通过传入的来替换已有的文档
当这里ObjectId和已存在的数据ObjectId相同时,则覆盖原有的数据

db.bbb.save({_id:ObjectId("123456789123456789123456"),name:"dada",age:5})

这里写图片描述

c)删除文档
remove()方法用于移除集合中的数据

db.bbb.remove({name:"dasb"})

删除bbb集合中所有name为dasb的数据
这里写图片描述

db.bbb.remove({name:"lisi"},1)

删除bbb集合中name为lisi的第一条数据
这里写图片描述

d)查询文档
使用find()方法查询文档
查询bbb下所有的document数据

db.bbb.find()

这里写图片描述

查询bbb下age为4的document数据

db.bbb.find({age:4})

这里写图片描述

使用find()方法查询指定列
查询bbb下age为4的document数据,age:1表示只显示它的age

db.bbb.find({age:4},{age:1})

这里写图片描述

使用pretty()方法;以格式化的方式来显示所有文档

db.bbb.find().pretty()

这里写图片描述

使用findOne()方法匹配结果第一条数据

db.bbb.findOne({name:"dada"})

这里写图片描述

e)查询操作符
条件操作符用于比较两个表达式并从mongoDB集合中获取数据
① ‘>’操作符 使用 $gt
例如查找bbb中age大于的数据

db.bbb.find({age:{$gt:5}})

这里写图片描述

②‘>=’操作符 使用 $gte
例如查找bbb中age大于等于5的数据

db.bbb.find({age:{$gte:5}})

这里写图片描述
③‘<’操作符 使用 $lt
例如查找bbb中age小于5的数据

db.bbb.find({age:{$lt:5}})

这里写图片描述
④‘<=’操作符 使用 $lte
例如查找bbb中age小于等于5的数据

db.bbb.find({age:{$lte:5}})

这里写图片描述
⑤‘>=’且 ‘>=’操作符 使用 $gte 和 $lte
例如查找bbb中age大于等于4小于等于6的数据

db.bbb.find({age:{$gte:4,$lte:6}})

这里写图片描述

⑥‘==’操作符 使用 ==
例如查找bbb中age等于5的数据

db.bbb.find({age:5})

这里写图片描述

⑦ 使用_id进行查询
例如查找bbb中_id为123456789123456789123456的数据

db.bbb.find({_id:ObjectId("123456789123456789123456")})

这里写图片描述
⑧ 查询某个结果数据的条数
例如查找bbb中age等于5的数据的数量

db.bbb.find({age:5}).count()

这里写图片描述
⑨ 查询某个字段的值中是否包含另一个值
例如查找bbb中name中包含da的数据

db.bbb.find({name:/da/})

这里写图片描述

⑩ 查询某个字段是否以另一个值开头
例如查找bbb中name以d开头的数据

db.bbb.find({name:/^d/})

这里写图片描述

f)查询条件and 和 or
① and条件
mongoDB的find()方法可以传入多个键,每个键以逗号隔开
例如查询name为ccc并且age为5的数据

db.bbb.find({name:"ccc",age:5})

这里写图片描述
② or条件
例如查询age为4或者age为5的数据

db.bbb.find({$or:[{age : 4} , {age : 5}]})

这里写图片描述
③and 和 or 联合使用
查询name为ccc并且age是4 或者age是5的数据

db.bbb.find({name:"ccc", $or:[{age:4},{age:5}]})

这里写图片描述
g)limit和skip方法
①limit()方法,读取指定数量的数据记录
例如查询前三条数据

db.bbb.find().limit(3)

这里写图片描述
②skip()方法,跳过指定数量的数据
例如查询第三条数据之后的数据

db.bbb.find().skip(3)

这里写图片描述
③skip()方法和limit()方法混合使用
用这种方式完成分页
先跳过3条数据,然后再取出两条数据

db.bbb.find().skip(3).limit(2)

这里写图片描述

h)排序
sort()方法可以通过参数指定排序的字段,使用1和-1来指定排序的方式,1为升序排序,-1为降序排序
例如根据age进行升序排序

db.bbb.find().sort({age:1})

这里写图片描述

完结撒花(。・∀・)ノ

猜你喜欢

转载自blog.csdn.net/dangsh_/article/details/78646856