Chinaunix首页 | 论坛 | 博客
  • 博客访问: 507528
  • 博文数量: 158
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 904
  • 用 户 组: 普通用户
  • 注册时间: 2016-10-10 11:17
文章分类

全部博文(158)

文章存档

2018年(74)

2017年(84)

我的朋友

分类: NOSQL

2017-12-07 16:43:46

【前言】

        Mongodb是一数据库产品,且开源可以免费使用。支持在目前主流操作系统的运行,并且官方提供了主流语言或框架的Drivers进行对数据库进行操作。相较于传统的关系数据库上更易配置安装学习,以单纯的最为工具使用,一天即可掌握基本使用。本文介绍mongodb的基本使用(在windows上)。

【正文】   

首先开启服务:

打开cmd.exe , 定位到mongodb的安装路径,进入bin文件夹,调用mongod.exe程序,如果数据库在默认的路径下,单一的执行这个程序就可以。

  • 如果数据库配置在特殊的路径下: 使用命令 mongod.exe  –dbpath  /data/db 进行启动。

  • 成功启动后,在27017端口进行监听,这时就可以使用mongo客户端进行连接。要使用特定的端口,使用条件 –port 12345




使用mongodb客户端进行连接:

  同样的在mongod.exe目录下,使用cmd.exe 执行 mongo.exe命令,进行连接到mongodb服务,成功连接后即可使用js shell进行操作。


常用命令使用:

  在客户端控制台下 输入help命令可以将所有的命令导出查看,开天辟地,这个应该是是最好的文档了,如下所示

         


查看所有数据库的命令

show dbs


l  创建数据库

mongodb中,并不需要显示的创建数据库,在实际向数据库中插入数据的时候,如果是第一次则创建数据库,这个像sqlite

所以使用 use db-name这个命令就是可以。这种情况不仅仅是对数据库,对于集合也同样的适用,users集合也没有创建的情况下。


对于文档中的 _id,可以将其视为文档的主键,每个mongodb文档都有一个_id

l创建读取数据库的基本方法

insert() 插入数据 

  


find()   查找数据


save()   保存数据 


更新删除操作

n更新操作

                update() 可用$set来进行设置,对于$set的操作是用来指定一个键并更新键值,若键不存在并创建。而$addToSet,则会确保唯一性。

    

n删除数据


                remove()操作不会删除集合,它只是从集合中删除文档,需要在remove中说明删除项的信息

                

索引的使用

    为了验证索引功能,首先要有大量的数据基础,所以先构造数据,可以在一个循环中构造20万条数据。

                

                在关系型数据库中,都会提供一些功能来进行对查询的语句进行分析,达到分析目的,在explain,在mongodb 3.4

版本下的返回结果如下


                

   解释说明(参考官方文档):对于explain传递TrueFalse会产生不同结果。

queryPlanner

  包含了通过查询优化器进行计划查询的细节信息:

        namespace    执行查询的所在的对象

        indexFilterSet  指示说明目前的查询是否有使用索引

    winningPlan

         将查询优化器执行过程中信息以阶段树的形式进行展现,其中阶段的概念表示在实际执行过程中功能明确的一个过程,可以是 输入阶段,扫描阶段等。

         Stage:表示具体的操作阶段名称 其中 COLLSCAN表示集合扫描

         filter:过滤得到的

RejectPlans

         表示在查询优化器中被拒绝的操作队列。

 添加索引操作


  使用ensureIndex()函数,ensureIndex函数的具体说明,可以发现其这个函数需要两个参数,一个是需要建立索引的键的关键字,另一个则是建立的索引的条件,可以指定升降序等。

    

在成功的创建了索引后,再次执行explain进行查看查询时的结果,可以发现现在进行查找时已经有使用了索引了.

    

连接

    Mongodb Drivers



阅读(1280) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~