ChuannBlog

MongoDB

一款强大、灵活、且易于扩展的通用型数据库。

介绍

MongoDB与SQL对比

SQL术语/概念MongoDB术语/概念解释说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录/集合
columnfield数据字段/域
indexindex索引
table joins表连接,MongoDB不支持
primary keyprimary key主键,MongoDB自动将_id字段设置为主键
# mysql
+----+-----------+--------------+
| id | name      | email        |
+----+-----------+--------------+
|  1 | 林海峰    | 1234@163.com |
|  2 | 武沛齐    | 1234@163.com |
+----+-----------+--------------+

# mongodb
{
        "_id" : ObjectId("5a61eca60793da2b97ba6900"),
        "name" : "林海峰",
        "eamil" : "[email protected]"
}
{
        "_id" : ObjectId("5a61ecab0793da2b97ba6901"),
        "name" : "武沛齐",
        "eamil" : "[email protected]"
}

文档

集合

数据库

命令空间

安装与准备使用

安装

下载

  1. 安装路径为D:\MongoDB,将D:\MongoDB\bin目录加入环境变量
  2. 新建目录与文件

     D:\MongoDB\data\db
     D:\MongoDB\log\mongod.log
    
  3. 新建配置文件mongod.cfg,参考:https://docs.mongodb.com/manual/reference/configuration-options/

     systemLog:
        destination: file
        path: "D:\MongoDB\log\mongod.log"
        logAppend: true
     storage:
        journal:
           enabled: true
        dbPath: "D:\MongoDB\data\db"
     net:
        bindIp: 0.0.0.0
        port: 27017
     setParameter:
        enableLocalhostAuthBypass: false
    
  4. 制作系统服务

     mongod --config "D:\MongoDB\mongod.cfg" --bind_ip 0.0.0.0 --install
     或者直接在命令行指定配置
     mongod --bind_ip 0.0.0.0 --port 27017 --logpath D:\MongoDB\log\mongod.log --logappend --dbpath D:\MongoDB\data\db  --serviceName "MongoDB" --serviceDisplayName "MongoDB"  --install
    
  5. 启动\关闭

     net start MongoDB
     net stop MongoDB
    
  6. 登录

     mongo
    

账号管理

  1. mongodb环境下,创建账号

     use admin
     db.createUser(
       {
         user: "root",
         pwd: "123",
         roles: [ { role: "root", db: "admin" } ]
       }
     )
    	
     use test
     db.createUser(
       {
         user: "egon",
         pwd: "123",
         roles: [ { role: "readWrite", db: "test" },
                  { role: "read", db: "db1" } ]
       }
     )
    
  2. 重启数据库

     mongod --remove
     mongod --config "C:\mongodb\mongod.cfg" --bind_ip 0.0.0.0 --install --auth
    
  3. 登录:注意使用双引号而非单引号

     mongo --port 27017 -u "root" -p "123" --authenticationDatabase "admin"
    
    • 也可以在登录之后用db.auth(“账号”,”密码”)登录
     mongo
     use admin
     db.auth("root","123")
    
  4. 其他

    • help查看帮助
    • mongo时一个简化的JavaScript shell,可以执行JavaScript脚本

参考博客

基本数据类型

CRUD操作

数据库操作

    • use config #如果数据库不存在,则创建数据库,否则切换到指定数据库。
    • show dbs #查看所有
    • 可以看到,我们刚创建的数据库config并不在数据库的列表中, 要显示它,我们需要向config数据库插入一些数据。db.table1.insert({‘a’:1})
    • use config #先切换到要删的库下
    • db.dropDatabase() #删除当前库

集合操作

    • 当第一个文档插入时,集合就会被创建
     > use database1
     switched to db database1
     > db.table1.insert({'a':1})
     WriteResult({ "nInserted" : 1 })
     > db.table2.insert({'b':2})
     WriteResult({ "nInserted" : 1 })
    
  1.  > show tables
     table1
     table2
    
  2.  > db.table1.drop()
     true
     > show tables
     table2
    

文档操作

可视化工具:robomongo