MongoDb数据库的基本操作

一、下载安装

  官网:https://www.mongodb.com/

  如果不嫌弃版本太老的话,这有一个安装包。链接:https://pan.baidu.com/s/1IN9H-HyOKnO3hwzm47i0wA   提取码:q621

二、基本结构

 

三、基本操作

 

使用前准备

 

  1、储存数据:新建一个文件夹

  2、开启服务:打开cmd执行  mongod --dbpath 文件夹名 

  3、管理数据库:新打开cmd(步骤2的cmd不要关),输入mongo(或mongo 127.0.0.1:27017)使用本地去管理

创建与插入数据

  1、创建数据库:use itying  ,itying为自定义数据库名称,如果不给数据库添加新集合,数据库不会创建成功

  2、创建一个集合并插入一条数据:db.user.insert({“name”:”xiaoming”}), user为自定义集合名称,数据以名值对方式存储。重复2操作可以往一个集合中添加多条数据,双引号对数字来说可加可不加。

查询数据

  1、但凡涉及到操作数据库的,都要先use itying

  2、查询所有数据库:show dbs

  3、查询某个数据库的所有集合名:use itying 、show collections

  4、查询某个集合的所有数据:use itying、itying.user.find()

  5、精确查询数据:use itying、itying.user.find({"name":"zhangsan", "age":22})  逗号为且查询,name为zhangsan且age为22

  6、模糊查询数据:use itying、itying.user.find({"name":/san/}),但凡name属性值带san的都会被匹配上,模糊查询的内容不要加双引号(无论是中文英文数字)

  7、查询一定范围的数据:use itying、itying.user.find({"age":{$gte:22, $lte:33}}),查询age在[22, 33]区间的所有数据。范围查询有好多格式,具体看pdf。

  8、查询数据并排序:db.user.find({}).sort({"age":1}),1按照age升序排序,-1按照降序排序

  9、查询前几条数据:db.user.find().limit(3),这个功能一般用来做首页内容展示

  10、查询指定位置数据:db.user.find().skip(2).limit(4),跳过前两条数据,从第三条开始查询4个数据,也就是查询第3条到第6条的数据

  11、或查询:db.user.find({$or:[{"age":"20"},{"age":"22"}]}),age为20或22

  12、查询数量:db.user.find({"age":{$gt:"22"}}).count(),age大于22的数据的数量

修改和删除数据

  1、删除集合:db.user.drop(),删除成功true,若该集合不存在删除失败为false

  2、删除数据库:当数据库中的集合全部删除后,数据库跟着被删除,可用show dbs查看

  3、修改数据:db.user.update({"name":"hj"},{$set:{"age":50}}),前面为查询数据的筛选条件,后面是修改内容,表示将hj的age改为50。

  如果不写$set: ,表示全部替换掉这条数据,如:db.user.update({"name":"hj", "age": 22},{"age":50}),本来这个数据有name、age或者其它属性,现在只有一个age=50的属性了。

  4、删除数据:db.user.remove({"age":{$gt: 20})),删除大于20的数据。

索引和执行时间

  普通索引

  1、查看是否有索引:db.user.getIndexes()

  2、给数据设置索引:db.user.ensureIndex({"num":1}),给所有的num批量设置索引,这样单独查询num时会非常快

  3、获取数据索引:db.user.getIndexes()

  4、删除索引:db.user.dropIndex()

  复合索引

  5、复合索引:db.user.ensureIndexes({"name":"hj", "age":22}),这样在同时查询name和age时会很快,单独查询age速度不变,除非给age单独设置普通索引

  6、唯一索引:db.user.ensureIndex({"name":"hj"},{"unique":true}),唯一索引不允许数据重复

  7、查看一个任务的执行时间:.explain("executionStats"),如:db.user.find({"num":26438}).explain("executionStats"),找到num=26438这条数据的时间,在输出内容找到executionTimeMillis即为执行毫秒数。

  

posted @ 2020-01-16 10:28  桥头排骨  阅读(207)  评论(0编辑  收藏  举报