zoukankan      html  css  js  c++  java
  • mongodb增删改查常用命令总结

    前言

    去年我还折腾过mongodb,后来用不到也就没碰了,这就导致了我忘的一干二净,不得不感叹,编程这东西只要不用,就会忘没了。现在我想重拾mongodb,来总结一下常用命令,主要就是增删改查。

    另外,关于mongodb数据的安装配置,我就不赘述了,推荐我之前写过的两篇博客:

     1. Windows下图文详解Mongodb安装及配置

     2. Linux环境安装mongodb

    接下来,我直奔主题咯~

     

    新建数据库

    创建之前,我们看看当前有哪些数据库,使用:

    show dbs

    接下来创建一个新的数据库:

    // 使用这个数据库,没有则会创建
    use test
    
    // 此时还没有创建成功,只有在其中创建一个集合时,这个新数据库才会创建成功
    db.user.insert({"name":"wj","age":18})
    
    // 上面命令在test数据库里新建了一个user集合,并插入了数据,此时再执行show dbs ,已经有了test数据库

    插入(增加)数据

    前面已经提及了,格式如下:

    db.集合名.insert({"name":"wj"})

    注意在使用这条命令前,要切换到对应数据库,比如:

    use test

    这样新增的集合就在这个数据库下,可以使用命令:

    show collections

    来查看当前数据库下有哪些集合

     

    删除

    1. 删除当前数据库

     db.dropDatabase()

    2. 删除集合

    db.集合名.drop()

    3. 删除数据

    db.集合名.remove(条件)
    
    // 比如要删除user集合下name为wj的数据,则
    db.user.remove({"name":"wj"})

    修改

    修改前要按条件查找的,例如我要把名为小明的同学的年龄修改为3岁,那么命令如下:

    db.user.update({"name":"小明"}, {$set:{"age":3}})
    
    // 上面命令的格式
    db.集合名.update({条件}, {$set:{修改的值}})

    注意花括号不要写错,另外加上$set是修改,如果不加的话,就是后面的替换前面的,如:

    // 修改前
    { "name":"小明"}
    
    // 修改
    db.user.update({"name":"小明"},{"age":20})
    
    // 修改后
    { "age":20}

    默认情况下,只会修改满足条件的第一条数据,如果希望修改所有满足条件的数据,加上{multi:true},如:

    db.user.update({"sex":""}, {$set:{"age":30}}, {multi:true})

    查找

    关于查询的方式就比较多啦。敲命令时,多注意符号的书写。

    1. 查询集合下所有数据

    db.user.find()  //user是集合名

    2. 查询 age == 20 的数据

    db.user.find({"age":20})

    3. 查询 age > 20 的数据 (大于)

    db.user.find({"age":{$gt:20}})

    4. 查询 age < 20 的数据 (小于)

    db.user.find({"age":{$lt:20}})

    5. 查询 age >= 30 的数据 (大于或等于)

    db.user.find({"age":{$gte:20}})

    6. 查询 age <= 30 的数据 (小于或等于)

    db.user.find({"age":{$lte:20}})

    7. 查询 age >= 20 并且 age <= 30 的数据 (且)

    db.user.find({"age":{$gte:20,$lte:30}})

    8. 查询 name 中包含 wj 的数据

    db.user.find({"name":/wj/})

    9. 查询 name 中以 w 开头的数据

    db.user.find({"name":/^w/})

    10. 查询指定列的数据

    // 只查看name列
    db.user.find({},{"name":1})
    
    // 只查看age列
    db.user.find({},{"age":1})
    
    // 只查看name和age列
    db.user.find({},{"name":1,"age":1})

    11. 查询指定列的数据,带条件(age > 20)

    db.user.find({"age":{$gt:20}},{"name":1,"age":1})

    12. 排序

    // 按照年龄来排序
    
    db.user.find().sort({"age":1})  // 升序
    
    db.user.find().sort({"age":-1})  // 降序

    13. 多条件查询

    db.user.find({"name":"wj","age":20})
    
    // 应该好理解,查询同时满足这两个条件的数据,前面忘记说了

    14. 查询前三条数据

    db.user.find().limit(3)

    15. 查询五条之后的数据

    db.user.find().skip(5)
    
    // 好理解,跳过前5条,显示的就是五条之后的数据

    16. 查询 5-10 之间的数据

    db.user.find().skip(5).limit(5)

    17. 或 查询

    db.user.find({$or:[{"age":20},{"age":30}]})

    18.查询第一条数据

    db.user.findOne()
    
    //这样也可以哦
    db.user.find().limit(1)

    总结

    建议上面每条命令都自己试试,如果不成功,注意符号的书写是否正确,尤其是花括号。当然很可能是我手滑写错了,希望知道的人给我指出哦,谢谢。

     

  • 相关阅读:
    网站服务化
    网站服务化
    dubbo 服务化
    dubbo 服务化
    elk 搭建
    poj1840
    poj1840
    poj2299
    poj2299
    poj2388
  • 原文地址:https://www.cnblogs.com/wjaaron/p/9518247.html
Copyright © 2011-2022 走看看