mongodb--基本操作

相关大体知识结构查看图入口:

声明: 
mongoDB 3.0 开始ensureIndex被废弃,使用 createIndex 创建索引。但是还是兼容之前的ensureIndex,因此本文案例也一直使用这个函数 可以使用 db.version() 查看自己目前的版本

1. mongo默认的集合是test.
    eg1: 
增加数据库 增加数据表增加数据
      --  show dbs 查询集合[ 
查询所有的数据库 ]
      --  use classOne [ 切换集合,即使这个集合是不存在的,只要不插入数据,就不会报错 ][
切换到指定数据库classOne的上下文,可以在此上下文中管理 classOne 数据库以及其中的集合等 ]
      --  db.student_number.insert({x:1}) [
插入一条数据前,会自动创建classOne这个集合 ]
  
   eg2:
  删除数据库
       -- show dbs [ 
就会查询到这个
classOne 集合  ]
       -- use classOne
      --  db.dropDatabase() [
删除切换的当前集合或者数据库  ]

   eg3: 
查看某个集合下面的表    查询当前表中数据
       --  use test  
       --
  show collections  [ 查看当前库或者集合下面的表 或者是显示所有的集合 ]  ==
db.getCollectionNames()    
       --  use classOne
       --  db.student_number.find() [
不带参数的find代表查询当前表下面的所有的数据]
       -- db.student_number.findOne() [
查询student_number表中的第一条数据 ]

 eg4:  
利用for循环添加数据  [ mongo支持js的循环 ]
         -- for(i=1; i<100; i++) db.student_number.insert({x:i})  [
遍历插入100条数据数据 ]
         -- 
db.student_number.find().count()  [ 查询刚才修改数据总数 ]
         -- db.student_number.find().skip(3). limit(2).sort({x:1}) [ 
限制查询条件,跳过前三条数据,只查2条,并且按照x排序 ]

eg5: 
查询数据库服务器的状态
        -- 
db.serverStatus()  

eg6:   
根据某一个条件更新,保护其他不被修改覆盖
       --  db.student_number.insert({x:100,y:100,z:100})
      
--  db.student_number.update({x:100},{y:101},{z:101}) [ 根据x:100查找,修改其他值  没用处 不在测试 ]
       --  db.student_number.update({x:100},{$set:{ y:66 }}) [ 根据x:100查找修改y:66,保护z的值不变 ]

eg7:   查询指定数据库的统计信息
       -- use imooc 
       -- db.stats()

eg8: 
更新一条不存在的数据的时候 自动创建 update({},{},true)
      
-- db.student_number.update({y:1001},{y:10002},true) [ 假设这条数y:1001据是不存在的,在更新y:10002时候就会执行插入 ]

eg9:  同时更新多条数据  mongo的设计update本身只会更新第一条数据,除了上面的第三个参数为,还有第四个参数
      --  db.student_numer2.update({x:1}, {$set:{x:2}},false,true ) [
假设有三条x:1的数据在student_numer2中,我们通过这条语句就会一次全部更新x:2, 在多语句的更新中只能是用$set条件 ]

eg10: 删除表跟表数据
      -- db.classone.remove({x:1})  [ 假设有多条x:1的数据存在,酱紫就会删除这些数据 ]
     -- db.classone.drop() [ 将会删除classone的这个表或者叫做集合  返回值是true或者false]
     -- show tables   [ 查看表 ]

eg 11: 索引 
在数据量比较大时需要使用索引加快查询速度  相关知识查看
      -- db.classone.getIndexes()   [ 查看集合的索引情况,在数据量很多的时候是不会返回结果的 ]
      -- db.classone.ensureIndex({x:1}) [ 创建索引 x :1  代表正向排序,文档数目较多,创建比较费时间,不能直接使用这个命令,需要在创建数据库之前就创建好索引,索引是在插入数据之后才创建的,但是为了高效的查询这点牺牲也很应该 ]
 
eg 12  创建过期索引  以及删除索引
     -- db.imooc_2.ensureIndex({time:1},{expireAfterSeconds:30})  [
设置该imooc_2这张表的过期时间是30s ]
     --db.imooc_2.insert({time:new Date()})  [
将当前的时间插入到time中,但是不会这么精准,请查看原因 ]
     --db.imooc_2.dropIndex({x:1,y:1}) [
删除当前的多值索引 {x:1,y:1}  ]
   





   
   
 Mongodb 中一些基本的经常使用的命令总结:
1. db.version()  // 查看版本信息
2. db.serverStatus()  //  查看服务配置的信息
3. 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值