MongoDB初体验

MongoDB是基于分布式文件存储的数据库,介于关系型数据库和非关系型数据库之间,是非关系数据库当中功能最丰富,最像关系数据库的。由C++编写,入门简单,使用灵活,可以结合Node使用,所以对前端程序员也是极其友好的。

  1. 安装(以windows操作系统为例)

    • 官网地址,根据自己的操作系统下载完之后安装即可,安装过程中可以自定义安装目录,默认装在C盘。
  2. 创建数据目录

    • MongoDB将数据存储在db目录下,但这个目录不会自动创建,需要手动创建。(注意:数据目录应该放在安装的根目录下)以C盘为例,在C盘下创建data文件夹,data下创建db文件夹。

查看MongoDB版本

mongo -version
1. 启动数据库
mongod 
2. 连接数据库(再开启一个终端)
mongo

基于CRUD的基本命令使用

1. 显示所有数据库
show dbs
2. 切换到指定数据库
use `数据库名称`
  • 如果没有会自动创建,但是再执行 show dbs 的时不会显示,只有插入数据以后才显示。
3. 查看当前所在的数据库
db
4. 创建集合
db.createCollection(name, options)  
  • name为集合名
  • options为可选的对象参数,包括size,max等属性
5. 显示当前数据库的所有集合
show collections
6. 删除某个集合
db.Collection_Name.drop()
7. 插入数据
db.Collection_Name.insert(document)   
  • Collection_Name 为集合名,如果当前数据库中没有该集合,MongoDB 会自动创建并插入文档。
  • Use:
    • db.userInfo.insertOne({"name": "Jack", "age": 18})
8. 更新数据
db.Collection_Name.update(
   ,     
   ,    
   {
     upsert: ,        
     multi: ,          
     writeConcern:    
   }
)
  • query 查询条件
  • update 更新后的数据
  • 参数3 可选
    • upsert 可选,这个参数的意思是,如果不存在update的记录,是否插入newObj,true为插入,默认是false,不插入。
    • multi 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新
    • writeConcern 可选,抛出异常的级别。
9. 查询数据
db.Collection_Name.find(query, projection)  
  • query 可选,查询条件

  • projection 可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)

  • 如果参数为空,读取到的是所有数据

    以易读的方式来读取数据
    db.Collection_Name.find().pretty() 
    
    • Use:
      1. db.userInfo.find()
      2. db.userInfo.find().prety()
10. 多条件查询
  1. AND
db.Collection_Name.find({key1: value1, key2 :value2}).pretty()
  1. OR
db.Collection_Name.find(
   {
      $or: [
         {key1: value1}, {key2: value2}
      ]
   }
).pretty()
  1. AND 和 OR联合使用
db.col.find({key1: value1}, $or: [{key2: value2}, {key3: value3}]}).pretty()
11. 删除数据
db.collection.remove(
   ,
   
)
如果 MongoDB 是 2.6 版本以后的,语法格式如下:
db.collection.remove(
   ,
   {
     justOne: ,
     writeConcern: 
   }
)
  • query :(可选)删除的文档的条件。
  • justOne : (可选)如果设为 true 或 1,则只删除一个文档。
  • writeConcern :(可选)抛出异常的级别。

以上为基本的CRUD使用。

你可能感兴趣的:(MongoDB初体验)