Mongodb 学习笔记(一)

论坛 期权论坛 脚本     
匿名网站用户   2020-12-20 15:23   147   0

一、 NoSQL数据库

KV型数据库(key/value)

  • Redis, Memcached

文档数据库

  1. Mongodb, 文档数据库, 存储的是文档(Bson->Json的二进制)

Mongodb 内部执行引擎为Js解释器, 把文档存储成bson结构,在查询时转换为js对象, 并通过熟练的js语法进行操作.

4094365-016e9ce1c348c8d8.png
mongo内部执行流程.png
  1. mongo与传统数据库相比,最大的不同
  • 传统型数据库: 结构化数据库,定义好表结构后,每一行的内容,必是符合表结构的,列的个数,类型都一致
  • mongodb 文档型数据库: 表下的每篇文档都可以有自己独特的结构(json对象都可以有自己独特的属性和值)
4094365-773bfa57a997fe7c.png
mongodb与传统型数据库的不同.png

举例: 如果有电影、影评、影评的回复, 在传统型数据库中至少需要四张表,关联非常复杂,
在文档型数据库中,通过一篇文档即可完成,体现出文档型数据库的反范式化
{
film:"赌王",
comment:[
{
content: "影评1",
reply:["好", "不错"]
}
]
}

二、 MongoDB的安装

  1. 下载mongodb, 线上使用,最好下载最新的stable版
  2. 解压文件
  3. 不用编译,本身就是编译后的可执行二进制文件
4094365-cd0e98640f1e84a0.png
image.png
  1. 启动mongod服务
    ./bin/mongod --dbpath /path/to/database --logpath /path/to/log --fork --port 27017
  • 参数解析
    --dbpath 数据存储目录
    --logpath 日志存储目录
    --port 运行端口(默认27017)
    --fork 以后台进程运行mongod, 日志输出到日志文件里,而不是控制台
  1. mongodb非常的占磁盘空间, 刚启动后要占3~4G 左右
    如果使用虚拟机练习,磁盘空间不够,则无法启动
    可以用 --smallfiles来启动,将会占用较小的空间,400M左右.

三、MongoDB的基本命令

  1. 入门命令
  • show databases/dbs 查看当前的数据库
  • show tables/collections 查看当前库下的collection
  • use databaseName; 选库
  • db.help() 查看命令帮助
  1. 创建一个库
  • mongodb下的库是隐式创建的,你可以use 一个不存在的库,然后在该库下创建collection,即可创建库
  1. db.createCollection(collectionName)
    创建collection

4.collection允许隐式创建
db.collectionName.insert(document);

db.user.insert({name:"lisi",age:22})

  1. 删除collection
    db.collectionName.drop()

6.删除库
db.dropDatabase()

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP