zoukankan      html  css  js  c++  java
  • MongoDB超级简明入门教程

    1.概念篇

    MongoDB和MySQL分别作为非关系型数据库和关系型数据库的代表,通过它们之间的对比可以很快的建立起对MongoDB的认知。

    MongoDB MySQL
    数据库(Database) 数据库(Database)
    集合(Collection) 表(Table)
    文档(Document) 记录(record)

    对于关系型数据库,一般来说,我们可以简单的理解为:一个数据库管理应用,可以创建多个数据库(databases),每个数据库可以管理很多个表(tables),表中存储的就是可以CURD的记录(records),这种管理层级同样可以映射到MongoDB上。

    与MySQL不同的是,MongoDB的数据具有灵活的模式 。集合本身没有对文档结构的规则性校验,而表的设计从一开始就约束死了记录该包含的字段名。

    需要注意的是,MongoDB作为非关系型数据库,不是说其我们使用时不能设计成关系型的结构,我们同样可以人为地约束(document)文档结构包含的数据的类型,(与MySQl不同的是,MongoDB的文档支持数组和对象、子文档等复杂的数据结构)同样文档之间也可以设计成类似ER图的关系模型。
    下面是官网提供的一个书籍分类树形结构数据建模的例子

    传统的关系型数据库的设计思想是把每个节点当做一个记录,每个节点保存其父节点的_id.

    _id parent
    MongoDB Databases
    dbm Databases
    Databases Programming
    Languages Programming
    Programming Books
    Books null

    这种关系也可以使用MongoDB存储

    db.categories.insert( { _id: "MongoDB", parent: "Databases" } )
    db.categories.insert( { _id: "dbm", parent: "Databases" } )
    db.categories.insert( { _id: "Databases", parent: "Programming" } )
    db.categories.insert( { _id: "Languages", parent: "Programming" } )
    db.categories.insert( { _id: "Programming", parent: "Books" } )
    db.categories.insert( { _id: "Books", parent: null } )
    

    其他几种树形结构的建模方法请参考
    Model Tree Structures
    Modeling a Tree in a Document Database

    2.快速操作篇

    • 下载安装客户端 https://docs.mongodb.com/manual/administration/install-community/
    • 开启MongoDB服务
      (1)创建数据库存储目录

      mkdir -p ~/yourdir/db
      

      确保当前用户拥有该目录的读写权限
      (2)开启服务

      mongod --dbpath <path to data directory>
      

      再此之前确保mongod命令路径已经加入到了系统环境变量

    • 使用mongo shell 操作数据库
      (1)连接到数据库,开启命令模式

      mongo --host 127.0.0.1:27017
      

      如果使用默认参数,后面的参数可以省略
      (2)显示目前操作的数据库

      db
      

      (3)切换数据库

      use <database>
      

      当第一次存储数据到数据库时,MongoDB会自动创建数据库及集合

      use myNewDatabase
      db.myCollection.insertOne( { x: 1 } );
      

      上面的insertOne语句会自动创建myNewDatabase数据库,与myCollection集合。

    3.MongoDB 增删改查 操作

    db.collection.insertOne()
    db.collection.insertMany() 
    
    db.collection.deleteOne()
    db.collection.deleteMany()
    
    db.collection.updateOne()
    db.collection.updateMany()
    db.collection.replaceOne()
    
    db.collection.find()
    
  • 相关阅读:
    jmeter-可视化的非GUI模式
    深度剖析阶梯负载与最终请求数
    安全测试基础2-sqlmap演练
    百度压测,分析性能拐点
    性能测试-服务端瓶颈分析思路
    性能测试中的常见异常分析(转载整理)
    jmeter_遍历转换浮点时间戳
    性能测试-实例讲解VU、RPS、RT公式换算
    利用Docker安装Web前端性能测试工具Sitespeed.io
    基于 Jmeter 的 web 端接口自动化测试平台(转载)
  • 原文地址:https://www.cnblogs.com/star91/p/MongoDB-chao-ji-jian-ming-ru-men-jiao-cheng.html
Copyright © 2011-2022 走看看