学习 NodeJS 8-MongoDB介绍

8 MongoDB介绍

8.1 windows平台下MongoDB安装和环境搭建

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

MongoDB优点:

  1. 高可拓展性
  2. 分布式存储
  3. 低成本
  4. 结构灵活 

 NoSQL(not only sql)优点:

  1. 高可扩展性
  2. 分布式计算
  3. 低成本
  4. 架构的灵活性,半结构化数据
  5. 没有复杂的关系

缺点:1、没有标准化;2、有限的查询功能(到目前为止);3、最终一致是不直观的程序。

  • 下载安装包或者压缩包
  • 添加db存储和日志存储文件夹(data,etc/mongo.conf,logs/mongodb.log)
  • 添加服务、配置环境变量、启动MongoDB 

bin目录下执行可执行cmd:mongod --dbpath c:\MongoDB\data --journal

mongo.conf文件配置:

# 数据库路径
dbpath = G:\Learning\MongoDB\data\
# 日志输出文件路径
logpath = G:\Learning\MongoDB\logs\mongodb.log
# 错误日志采用追加模式,配置这个选项后MongoDB的日志会追加到现有的日志文件,而不是重新创建一个新文件
logappend = true
# 启用日志文件,默认启动
journal = true
# 这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet = false
# 端口号 默认27017
port = 27017
# 指定存储引擎(默认先不加此引擎,如果报错了,大家都加进去)针对win7 32位的系统
# storageEngine = mmapv1
# http配置(坑:在3.6版本之后就没有这个参数了)
# httpinterface = true

配置完conf之后bin目录下启动cmd:mongod --config G:\Learning\MongoDB\etc\mongo.conf 

坑:http配置:httpinterface = true(在3.6版本之后就没有这个参数了)

将服务加载到windows的service服务下:mongod --config G:\Learning\MongoDB\etc\mongo.conf --install --serviceName "MongoDB"  (--serviceName可以不要的)

在这里,我配置了环境变量,然后添加到windows服务里,每当我点击启动不是报“找不到指定文件”就是什么“……100”,搜索了一万种方法也是没能解决,最终我选择卸载重新安装再配置。卸载的时候直接打开我们安装时的msi,他可以帮助我们卸载,它卸载的不完全,所以我们得把文件夹里的内容删掉,再重新安装。最终,我本打算去配置service服务,发现里面已经有MongoDBService了,而且已经启动了,what?什么鬼?然后我赶紧打开网页测试了一下localhost:27017,完全运行正常!

只能继续学习吧!

MongoVue:cmd mongo

  1. show dbs
  2. use imoocmall 
  3. db.goods.insert({id:101,name:"mi6",salePrice:2499})

8.2 Linux平台下的搭建

  • 下载安装包或者压缩包
  • 上传服务器,解压缩
  • 添加db存储和日志存储文件夹
  1. scp ……tgz [email protected]:/
  2. tar -zxvf ……tgz(解压)
  3. mkdir mongodb
  4. mv …… mongodb(把文件装进)
  5. 创建data、etc\mongo.conf、logs\mongodb.log
  6. 配置mongodb.conf

8.3 给MongoDB创建用户

          >use admin
         >db.createUser({user:"admin",pwd:"admin",roles:["root"]})
         >db.auth("admin","admin") 

         >db.createUser({user:"admin",pwd:"123456",roles:[{role:"dbOwner",db:"test"}]})

         >db.createUser({user:"roots",pwd:"666666",roles:[{role:"dbOwner",db:"dumall"}]})  

     注:在3.0以后免费的MongoVue很多功能就不支持了,所以要用Studio-3T(不是免费的)

  1. 创建管理员
  2. 授权认证
  3. 给使用的数据库添加用户

8.4 MongoDB基本语法

  • 数据库对比:
SQL术语/概念 MongoDB术语/概念 解释/说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins   表连接,MongoDB不支持
primary key primary key 主键,MongoDB自动将_id字段设置为主键

 >show dbs

>use demo

>db.createCollection("user")

>db.users.insert({id:123,name:"hello"})

>show collections

>db.dropDatabase()

>db.user.drop()

>db.user.insert({userId:101,userName:"Jack",userAge:28,class:{name:"imooc",num:10}}) 

>db.user.update({userName:'Jack'},{$set:{userAge:30}}) 

>db.user.update({userName:'Jack'},{$set:{'class.name':'imooc-test'}})

>db.user.remove({userName:"jack"}) 

>db.user.find()              查询所有数据

>db.user.find().pretty()  对查到的数据格式化 

>db.user.findOne()        查第一条数据

>db.user.find({userName:'Jack'}) 

>db.user.find({userAge:{$gt:20}})  (大于:$gt,小于:$lt,小于等于:$lte,大于等于:$gte,不等于:$ne,等于:$eq或者:)

  • 插入文档
  • 更新文档
  • 删除文档
  • 查询文档

8.5 表数据设计和插入

export、import

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章