前言:笔者曾经有18年的硬件研发经验,从(1)51单片机到(2)FPGA到(3)嵌入式ARM(ARM9到CORTEX A9)全都研发设计过,产品从(1)B超的整机研发到(2)智能家居系统到(3)无线电监测机到(4)平板电脑研发到(5)路灯智能控制到(5)工业电脑均有涉及,从(1)普通的电子技术工程师到(2)副总工程师到(3)副总经理到(4)事业部总经理。。。目前已经步入不惑之年的我对于物联网技术的热衷,决定从硬件开始全面转到物联技术框架之一的spring cloud技术,把我的整个学习经历和大家一起分享,也期待在之后有更多机会和大家一起合作,探讨。

      今天是:2018年5月10日      研究主题:微服务与非关系数据库之mongoDB

      今天可能是针对spring cloud学习的后续章节了,我马上会转到商业计划书的编写,因为目前我主导的一个中型的物联平台项目在7月底会出DEMO,因此会牵涉到后期的融资或其他方面的合作事宜,因此会花一至两个月的时间写我的商业计划书,当然我会把我的商业计划书的整个过程写出来,但不会牵涉到具体的项目内容,只是和大家一起学习商业计划书怎么写,怎么落地,希望大家和我一起学习。同时,打个广告,后期我会介入蓝牙5.0技术的研究和编写,也可能会介入android things或华为的lite os的编写,但具体实现还是我下面那帮兄弟在做,我只是做一个引导,当然我也在考虑是否需要将我的博客出来整个研发的进度,还是需要看粉丝们的关注程度。

由于MongoDB独特的数据处理方式,可以将热点数据加载到内存,故而对查询来讲,会非常快(当然也会非常消耗内存);同时由于采用了BSON的方式存储数据,故而对JSON格式数据具有非常好的支持性以及友好的表结构修改性,文档式的存储方式,数据友好可见;数据库的分片集群负载具有非常好的扩展性以及非常不错的自动故障转移。这条是在网上找的,我觉得还不错,在此申明一下。

         一、安装相应软件:mongodb-win32-x86_64-2008plus-ssl-3.4.9-signed(服务器端软件)和robo3t-1.1.1-windows-x86_64-c93c6b0(客户端软件)

mongodb-win32-x86_64-2008plus-ssl-3.4.9-signed(服务器端软件)软件后,用cmd命令进入:C:\Program Files\MongoDB\Server\3.4\bin目录下面,并输入:mongod.exe --dbpath=D:\mongo_data\db,出现:waiting for connections on port 27017的字样,表示已经成功启动:

                          

spring中实现MongoDB _class字段的作用和必要性_spring

robo3t-1.1.1-windows-x86_64-c93c6b0(客户端软件),并打开“Robo 3T 1.1.1”客户端,新建一个名叫“cjbmongoDB”的数据库

                             

spring中实现MongoDB _class字段的作用和必要性_spring_02

               新建一个名称“mymongoDB”,这个名字随便取,这个不是数据库名字

                                          

spring中实现MongoDB _class字段的作用和必要性_数据_03

         切换到“Authentication”,勾选“Perform authentication”,下面的Database才是数据库名字,我们同时设置用户名:chenjb730;密码:此处略

        

spring中实现MongoDB _class字段的作用和必要性_数据库_04

    3、在保证mongoDB服务开启的情况下,我们重新开一个cmd,进入目录:C:\Program Files\MongoDB\Server\3.4\bin

         

spring中实现MongoDB _class字段的作用和必要性_数据_05

          输入如下内容(红色部分表示系统会自动显示表示已经成功创建了用户),同时需要db.auth("name","passwd")验证:

db.createUser(
  {
    user:"chenhello",
    pwd:"123456",
    roles:[{role:"userAdminAnyDatabase",db:"admin"}]
   }
 )
Successfully added user: {
        "user" : "chenhello",
        "roles" : [
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "admin"
                }
        ]
}
> db.auth("chenhello","123456")


1

          

spring中实现MongoDB _class字段的作用和必要性_spring_06

           成功后,将能链接成功。                

             

spring中实现MongoDB _class字段的作用和必要性_spring_07

      3、在使用MongoDB时,用到的一些基本概念:

               database:数据库,相当于SQL的数据库;

              collection:数据集合,相当于SQL的数据表;

              document:数据文档,可看作SQL的一条数据;

               field:数据域,可看作SQL中的column;

              index:数据索引。

       4、输入数据:右键鼠标“Insert Document...”

                     

spring中实现MongoDB _class字段的作用和必要性_数据_08

         由于是JSON数据,所以必须满足JSON的格式,新建一些表内容,并点击“save”

                   

spring中实现MongoDB _class字段的作用和必要性_数据_09

                  

spring中实现MongoDB _class字段的作用和必要性_spring_10

     新建“cjb-mongodb”的项目,应用mongoDB

    二、更改“pom.xml”,增加依赖:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-mongodb</artifactId>
   <version>1.5.4.RELEASE</version>
</dependency>

   三、新建application.yml文件,做如下mongoDB数据库的设置:

server:
  port: 8008
spring:
  data:
    mongodb:
      uri: mongodb://chenjb730:123cjb@localhost:27017/test

       以上是用户名、密码和本地端口都写在一起,test表示数据库名

         

spring中实现MongoDB _class字段的作用和必要性_数据库_11

  四、剩余访问操作与上一节内容一样,由于近期很忙,所以暂时不一一列举,请大家谅解!