zoukankan      html  css  js  c++  java
  • mongoDB增删改查(命令行操作数据库)

    -

    mongodb 每一行的数据可以不一致,也没有类型严格限制

    这里在dos窗口内操作

    连接数据库

    在dos窗口输入   mongo 

    查看当前计算机有哪些数据库

    show  dbs 

    切换到某一个数据库

    use  <数据库>   

    //切换到 itying数据库
    //如果没有,先切换到这个数据库,然后添加一条数据,再通过show dbs就可以查到这个数据库
    use itying

    查看当前数据库的集合

    show collections   

    增加数据

    db.集合.insert({key:value,key2:value2})

    //在user表中插入 {"username":"张三","age":20} 这样一条数据
    db.user.insert({"username":"张三","age":20})
    // 往表内增加100条数据 
    for(var i = 0;i<100;i++){
      db.user.insert({"username":"zhangsan"+i,"age":i})
    }

    删除数据

    // 删除数据
    // db.user.remove({查询条件})
    // 比如把 username = zhangsan0 的数据删除
    db.user.remove({"username":"zhangsan0"})
    // 把age > 2的数据删除  只删除1条
    db.user.remove({"age":{$gt:2}},{justOne:true})
    db.user.remove({"age":{$gte:0}},{justOne:false}) //删除age>=0的所有数据
    // 把 age > 2 的所有数据都删掉
    db.user.remove({"age":{$gt:2}})
    // 删除表中所有数据
    db.user.remove({})

    修改数据

    // 修改数据 单条修改
    // db.集合.update({查询条件},{$set:{key:value}})  
    // 例如 把username=zhangsan22 的username改成 张三  (只修改第一条数据)
    db.user.update({"username":"zhangsan22"},{$set:{"username":"张三"}})
    // 如果不加$set  后面的值会替换整条数据(切记,不要在更新数据的时候忘记加$set)
    db.user.update({"username":"张三"},{"username":"zhangsan22","age":22})
    
    // 更新多条数据  批量修改
    // db.user.find({查询条件},{$set:{更新值}},{multi:true})
    // 比如给所有数据加一个性别属性
    db.user.update({},{$set:{"sex":"男"}},{multi:true})
    db.user.update({},{$set:{"sex":"男"}},{multi:false})//multi:false  单条修改 只修改第一条数据

    查询

    db.集合.find()   查看某一个集合的数据

    //查看user集合中的数据
    //这里find里没有参数,会显示表中的全部数据
    db.user.find()
    //查看user集合中有a属性,且a属性的值为1的数据
    db.user.find( { a : 1 } )
    //查找 user集合中 age > 18的数据
    db.user.find({"age":{$gt:18}})
    // 查找 user集合中 age < 20的数据
    db.user.find({"age":{$lt:20}})
    //查找 user集合中 age >=19的数据
    db.user.find({"age":{$gte:19}})
    // 查找 user集合中 age <= 20的数据
    db.user.find({"age":{$lte:20}})
    // 查找 user集合中 age >= 18 且 age <= 20的数据
    db.user.find({"age":{$gte:18,$lte:20}})
    // 模糊查询  
    // 搜索user集合中 username包含 mongo字段的数据
    // 数据量大的情况 需要借助第三方库,否则会有性能问题
    db.user.find({"username":/mongo/})
    // 查找username以 mongo开头的数据
    db.user.find({"username":/^mongo/})
    // 查找username以 o结尾的数据
    db.user.find({"username":/o$/})
    // 查找指定列的数据
    // 只显示username  第二个参数的value值 非0 代表展示这一列 0代表不展示这一列 
    db.user.find({},{"username":0})
    // 排序 
    // 按照年龄排序 1:升序  -1:降序
    db.user.find().sort({"age":1}) //升序
    db.user.find().sort({"age":-1}) //降序
    db.user.find().sort({}) //默认顺序
    db.user.find().sort({"username":-1}) //降序 用户名降序
    
    // 查询前5条数据 可以和排序链式调用
    db.user.find().limit(5)
    // 跳过5条数据(查询5条以后的数据)
    db.user.find().skip(5)
    // 查询第3条和第4条数据   (跳过2条查询前2条)
    db.user.find().skip(2).limit(2)
     // 分页查询
    // db.user.find().skip((page - 1) * pageSize).limit(pageSize)
    // 假如每页10条 查询第1页
    db.user.find().skip(0).limit(10)
    // 假如每页10条 查询第2页
    db.user.find().skip(10).limit(10)
    
    // or 与 查询
    // 正常的查询是 & 并且 查询
    // 来看一下 or 与 查询
    // 查询 age = 22 或者 age = 24 的数据
    db.user.find({$or:[{"age":22},{"age":24}]})
    // 查找 age = 22 或者 age = 24 并且 username以22结尾的 数据
    db.user.find({$or:[{"age":22},{"age":24}],"username":/22$/})
    
    // 查询第一条数据 
    db.user.findOne()
    // 相当于
    db.user.find().limit(1)
    
    // 查询某个结果集的记录条数  统计数量
    db.user.find().count()
    db.user.find({"age":{$gt:50}}).count()

    删除当前数据库

    db.dropDatabase()    

    //删除数据库
    //首先要先切换到此数据库
    user itying
    //然后删除
    db.dropDatabase()

    删除当前数据库中某一个集合

    db.集合.drop()  

    //删除当前数据库下的user集合
    db.user.drop()

    -

  • 相关阅读:
    WPF数据爬取小工具-某宝推广位批量生成,及订单爬取 记:接单最痛一次的感悟
    .net core2.1
    Ng Alain使用
    MediatR
    RN错误随笔
    【转载】DDD分层架构的三种模式
    1.RN环境搭建,创建项目,使用夜神模拟调试
    ExtJs4 笔记(2) ExtJs对js基本语法扩展支持
    ExtJs4 笔记(1) ExtJs大比拼JQuery:Dom文档操作
    vue的父子通信
  • 原文地址:https://www.cnblogs.com/fqh123/p/15170926.html
Copyright © 2011-2022 走看看