WHCSRL 技术网

MongoDB常用操作

  • 创建数据库/集合

    • use database_name    -- 数据库不存在创建、 存在直接切换
      show dbs             -- 查看所有数据库
      ​
      db.createCollection()-- 创建集合
      db.<collection>.inset() -- 插入一条数据,默认创建 
    • 刚创建的数据库不在数据库列表中,需要插入一些数据才显示

  • 删除数据库/集合

    • db.dropDatabase()  -- 切换数据库->删除数据库
      db.collection.drop(name) -- 删除集合
  • 插入文档

    • db.COLLECTION_NAEM.insert(document)
      ​
      --直接插入
      db.col.insert({title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库',by: '阿里云大学',
      url: 'http://www.openketang.com',tags: ['mongodb', 'database', 'NoSQL'],likes: 100})
      --变量插入
      document = ({title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库',by: '阿里云大学',
      url: 'http://www.openketang.com',tags: ['mongodb', 'database', 'NoSQL'],likes: 100})
      db.col.insert(document)
  • 更新文档

    • --update()用于更新已存在的文档
      db.collection.update(
          <query>,
          <update>
      )
      ​
      -- 插入
      db.col.insert({
          title: 'MongoDB 教程', 
          description: 'MongoDB 是一个 Nosql 数据库',
          by: '阿里云大学',
          url: 'http://edu.aliyun.com',
          tags: ['mongodb', 'database', 'NoSQL'],
          likes: 100
      })
      ​
      --更新
      db.col.update(
          {"title":"MongoDB 教程"},
          {$set:{"title":"MongoDB"}}
      )
      --以上语句只会更新第一条发现的文档,如果修改多条,需要设置multi参数为true
      db.col.update(
          {"title":"MongoDB 教程"},
          {$set:{"title":"MongoDB"}},
          {multi:true}
      )
  • 删除文档

    • db.collection.removeeee(
          <query>
      )
      ​
      -- 插入数据
      db.col.insert({title: 'MongoDB 教程', 
          description: 'MongoDB 是一个 Nosql 数据库',
          by: '阿里云大学',
          url: 'http://edu.aliyun.com',
          tags: ['mongodb', 'database', 'NoSQL'],
          likes: 100})
      ​
      -- 移除文档
      db.col.remove({"title":"MongoDB 教程"})
  • 查询文档

    • db.collection.find(query)
      • 操作范例
        等于db.col.find({"by":"菜鸟教程"})
        小于db.col.find({"likes":{$lt:50}})
        大于等于db.col.find({"likes":{$gte:50}})
        大于db.col.find({"likes":{$gt:50}})
        小于等于db.col.find("likes":{$lte:50})
        不等于db.col.find({"likes":{$ne:50}})
    • AND条件

      • db.col.find({key1:value1,key2:value2})
        ​
        db.col.find({"by":"速学堂", "title":"MongoDB 教程"})
    • OR条件

      • db.col.find({
            $or:[
                {key1:value1},{key2:value2}
            ]
        })
    • AND和OR联合使用

      • db.col.find({"likes":{$gt:50}, $or:[[{"by": "阿里云大学"},{"title": "MongoDB 教程"}]})
  • Limit与Skip方法

    • -- 读取指定数量记录数
      db.COLLECTION_NAME.find().limit(NUMBER)
      ​
      -- 跳过指定数量
      db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
  • Sort方法

    • db.COLLECTIOON_NAME.find().sort({key:1})  -- sort方法指定排序字段,1升序,-1降序
  • 索引

    • db.COLLECTION_NAEM.creatIndex({key:1})
  • 聚合

    • db.COLLECTION_NAME.aggregate()
    • 表达式描述实例
      $sum总和db.col.aggregate([{$group:{_id:"$by_user", num_tutorial:{$sum:"$likes"}}}])
      $avg平均值db.col.aggregate([{$group:{_id:"$by_user", num_turorial:{$avg:"$likes"}}}])
      $min最小值db.col.aggregate([{$group:{_id,"$by_user", num_tutorial:{$min:"$likes"}}}])
      $max最大值db.col.aggregate([{$group:{_id:"$by_user", num_tutorial:{$max:"$likes"}}}])
推荐阅读