• MongoDB入门


    MongoDB入门

    连接MongoDB

    • 打开cmd 输入mongo 连接MongoDB,出现 >

    数据库(database)

    • 数据库是一个仓库,在仓库中可以存放集合。
      • 集合(collection):集合类似于数组,在集合中可以存放文档
        • 文档(document):文档是数据库中的最小单位,我们存储和操作的内容都是文档
          • 在MongoDB中,数据库和集合都不需要手动创建,当我们创建文档时,如果文档所在的集合或数据库不存在会自动创建数据库和集合
    数据库的服务器
    • 服务器用来保存数据
    数据库的客户端
    • 客户端用来操作服务器,对数据进行增删改查的操作。
      • mongo 用来启动客户端

    基本指令

    show dbs // 显示当前所有数据库
    use 数据库名 // 进入到指定数据库中
    db // 表示当前所处的数据库
    show collections // 显示数据库中所有集合
    

    数据库的 CRUD(增删改查)的操作

    向数据库中插入文档(增)

    • db.<collection>.insert(doc)
      • 向集合中插入一个文档
      • 例子:向test数据库中的,stus集合中插入一个新的学生对象
        • {name: "码农权", age: 18, gender: 男}
        • db.stus.insert({name: "码农权", age: 18, gender: 男})
    • db.<collection>.find()
      • 查询当前集合中的所有文档
    查询
    • db.<collection>.find()
      • find() 用来查询集合中所有符合条件的文档
      • find() 可以接受一个对象作为条件参数
        • {} 表示查询集合中所有的文档
        • {属性:值} 查询属性是指定的文档
      • find() 返回的是一个数组
    • db.<collection>.findOne()
      • 用来查询集合中符合条件的第一个文档
      • findOne() 返回的是文档对象
    • db.<collection>.find().count()
      • 查询所有结果的数量
    • db.<collection>.find().limit()
      • 设置显示数据的上限
      操作符:
        $lt
        $gt
        $or
      例如:查询numbers集合中num>10的数据
      db.numbers.find({
        num: {
          $gt: 10
        }
      })
       查询工资小于1000或大于2500的员工
        db.emp.find({
          $or: [
            {
              salary: {
                $lt: 1000
              }
            },
            {
              salary: {
                $gt: 2500
              }
            }
          ]
        })
    
    • db.<collection>.find().skip()
      • 用于跳过指定数量的数据
      // limit() 和skip() 这两个函数可以配合分页
      skip( ( 页码-1 ) * 每页显示的条数).limit(每页显示的条数) 
    
      查询文档时、默认情况是按照_id的值进行排列(升序),在查询时,可以在第二个参数的位置来设置查询结果的 投影(展示想展示的信息,、0不展示,1展示)
        sort() 可以用来指定文档的排序规则,sort() 需要传递一个对象指定排序规则 1升序 0降序
          例如该集合
            _id: 001 name: 张三 score: 70
            _id: 002 name: 李四 score: 80
            _id: 003 name: 王五 score: 75
          需求:查询 students集合中 显示name和score 并将分数(score)进行升序
            db.students.find({},{
              _id: 0,
              name: 1,
              score: 1
            }).sort({
              score: 1
            })
    
      • MongoDB支持直接通过内嵌文档的属性进行查询,如果要查询内嵌文档则可以通过 . 的形式来匹配,如果要通过内嵌文档来对文档进行查询,此时属性名必须使用引号
        例如以下结构
        {
          "_id" : ObjectId("622f4e30a890791dcc0769d8"),
          "hobby" : {
            "cities" : ["beijing", "hanghai", "shenzhen"],
            "movies" : ["sanguo", "hero"]
          }
        }
        需求:查询喜欢电影 hero 的文档
        db.collection.find({"hobby.movies" : "hero"})
      
    修改
    • db.<collection>.update(查询条件,新对象)
      • update() 默认情况下会使用新对象替换掉旧的对象
      • 如果需要修改指定的属性,而不是替换,需要使用“修改操作符”来完成修改
        • $set 可以用来修改文档中的指定属性
        • $unset 可以用来删除文档指定属性
        • $push 向数组中添加一个新的元素
        • $addToSet 向数组中添加一个新元素,如果数组中已经存在该元素,则不会加
        • $inc 自增
      为分数低于80分的同学增加20分
      db.students.update({
        score: {
          $lt: 80
        }
      }, {
        $inc: {
          score: 20
        }
      })
    
    • update()默认只会修改一个 和 updateOne一样的
    • db.collection.updateMany()
      • 同时修改多个符合条件的文档
    • db.collection.updateOne()
      • 修改一个符合条件的文档
    删除
    • db.<collection>.remove()
      • 删除符合条件的所有文档(默认情况下会删除多个)
        • 如果remove() 第二个参数传递一个true,则只会删除一个
    • db.<collection>.deleteOne
      • 删除符合条件的一个文档
    • db.<collection>.deleteMany
      • 删除符合条件的所有文档
    • db.<collection>.drop()
      • 删除集合
    • db.dropdatabase()
      • 删除数据库
  • 相关阅读:
    请教提高上百万行数据insert速度的“经典”方法
    poj1411
    poj1422
    poj1661
    poj1664
    poj1405
    交往艺术与沟通技巧[推荐]
    不可不听的10个职场故事
    也谈如何“领导”你的领导
    十个让爱情稳固的经典好习惯
  • 原文地址:https://www.cnblogs.com/bingquan1/p/15996008.html
Copyright © 2020-2023  润新知