MongoDB基本指令

  1. 查看所有的db

    show dbs

  2. 切换db

    user <db_name>

  3. 查看当前所在db名称

    db

  4. 删除db**(必须在要删除的db中操作)**

    db.dropDatabase()

  5. 查看db下所有的集合

    show tables

    show collections

  6. 创建集合

    • db.createCollection("abc")
    • db.createCollection("def", {capped: true, autoIndexId: true, size: 1024, max: 100})
    • 往一张不存在的集合中插入一条数据,会自动创建集合
      • db.test.insert({title: 123})
  7. 删除集合

    db.<collection_name>.drop()

    例:db.abc.drop()

  8. 插入文档

    • db.<collection_name>.insert({title: 1234})

    • doc=({title: 12345, name: "MongoDB指南"})

      db.<collection_name>.insert(doc)

    • db.<collection_name>.save({name: "MongoDB简单指令"}})

    • doc2=({name: "MongoDB从入门到放弃"})

      db.<collection_name>.save(doc2)

    • doc3=({_id: "edrftgyhjkgjhfgv2ryuoio", name: "MongoDB从入门到放弃"})

      db.<collection_name>.save(doc3)// 若_id对应值的数据已经存在,则更新这条数据,否则新增一条数据

  9. 更新文档

    • db.<collection_name>.update({title: 1234}, {$set:{title: "4321"}})

    格式:

    db.<collection_name>.update(
    	<where>,// 相当于MySQL的where
    	<update>,// 相当于MySQL的update语句的set,需要跟一些指令:$,$inc,$set
    	{
    		upsert: true,// true:如果不存在记录,则新增;false相反,默认
    		multi: true,// true:只更新第一条匹配的记录;false相反,全部更新, 默认
    		writeConcern: <document>// 异常级别
    	}
    )
    

    案例

    > 1. 只更新第一条记录:
    > db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );
    > 2. 全部更新:
    > db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );
    > 3. 只添加第一条:
    > db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );
    > 4. 全部添加进去:
    > db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );
    > 5. 全部更新:
    > db.col.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );
    > 6. 只更新第一条记录:
    > db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );
    >
    
    • db.<collection_name>.save()

      调用save指令一般需要指定_id

  10. 删除文档

    db.<collection_name>.remove({title: "4321"}, true)

    格式

    db.<collection_name>.remove(
    	<where>,// 相当于MySQL的where
    	<justOne>// true:只删除一条匹配条件的数据;false:匹配条件的数据全部删除,默认
    )
    
    • 删除集合中所有数据

      db.<collection_name>.remove({})

    • 新函数:

      • db.<collection_name>.deleteMany({})
      • db.<collection_name>.deleteOne({title: "12345"})
  11. 查询文档

    1. 普通查询

    格式:

    > db.<collection_name>.find(
    > 	<where>, // 查询条件
    > 	<colName>// 返回字段名称
    > )
    >
    
    • 创建一个集合,插入三条数据
    db.user.insert([{name: "cc", age: "29", gender: 1}, {name: "ccc", age: "30", gender: 2}, {name: "c", age: "28", gender: 1}])
    
    • 查询集合中全部数据

      普通显示:db.user.find()

      格式化显示:db.user.find().pretty()

    • 查询name="c"的信息

      db.user.find({name: "c"}).pretty()

    • 查询只返回第一个匹配到的数据

      db.user.findOne({name: "c"})

    1. AND查询

      db.user.find({key: value, key: value})

      And查询即是在where条件里面用逗号","分隔

      栗子:

      > db.user.find({name:"cc", gender:1})
      > 
      > ---
      > 等同于MySQL:
      > select * from user where name = "c" AND gender = 1
      >
      
    2. OR查询

      db.user.find({$or:[{key:value}, {key:value}]})

      栗子:

      > db.user.find({
      > 	$or:[{name:"c"}, {gender:2}]
      > })
      > 
      > ---
      > 等同于MySQL:
      > select * from user where name = "c" OR gender = 2
      >
      
    3. AND和OR组合查询

      db.user.find({key:value, $or:[{key:value}, {key:value}]})

      栗子:

      > db.user.find({gender:1, $or:[{name: "c"}, {age: "28"}]})
      > 
      > ---
      > 等同于MySQL:
      > select * from user where gender = 1 AND (name = "c" OR age = "28")
      >
      

    运算符

    运算符格式案例MySQL对应语句
    等于{key:value}
    {key:{$eq:value}}
    db.user.find({age:“29”})
    db.user.find({age:{$eq:“29”}})
    where age = “29”
    大于{key:{$gt: value}}db.user.find({age:{$gt:“30”}})where age > “30”
    小于{key:{$lt: value}}db.user.find({age:{$lt: “30”}})where age < “30”
    大于等于{key:{$gte: value}}db.user.find({age:{$gte:“30”}})where age >= “30”
    小于等于{key:{$lte: value}}db.user.find({age:{$lte:“30”}})where age <= “30”
    不等于{key:{ne: value}}db.user.find({age:{$ne:“29”}})where age != “30”
    1. 模糊查询

      • 查询age包含0的:db.user.find({age:/0/})
      • 查询age以2开头的:db.user.find({age:/^2/})
      • 查询age以8结束的:db.user.find({age:/8$/})
    2. 分页查询

      格式:

      > db.<collection_name>.find().limit(Number).skip(Number)
      > 
      > ---
      > limit(Number)表示查询多少条数据
      > skip(Number)表示从第几条开始查询
      >
      
      • 查询一条数据

        • 第一种方法:db.user.findOne({})
        • 第二种方法:db.user.find({}).limit(1)
      • 从第二条数据开始查询一条数据

        db.user.find().limit(1).skip(2)

    3. 查询排序

      格式:

      > db.<collection_name>.find().sort({<key_name>:-1/1})
      > 
      > ---
      > <key_name>:排序字段
      > -1:倒序
      > 1:正序
      >
      
      • 按照年龄倒序

        db.user.find().sort({age:-1})

      • 按照年龄倒序、性别正序

        db.user.find().sort({age:-1, gender:1})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值