MongoDB基本命令操作以及CRUD

本文介绍了MongoDB的基本命令操作,包括使用查询运算符筛选数据,如何通过修改运算符进行数据更新,以及如何处理部分列的显示。还详细讲解了创建、查看、删除和重建索引的方法,以提升查询效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MongoDB基本命令:
查询运算符
在这里插入图片描述
修改运算符:(因为不适用修改器,新数据会覆盖(替换)源数据:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


show dbs   show databases 查询所有数据库 
db.dropDatabase()  删除数据库  
db.stats()  显示当前数据库的状态
db.version()   当前数据库的版本信息
show collections 查询所有集合(类似于关系数据库中的表)
db.createCollection(" name ")   创建集合  name:集合名称
db.foo.drop()  删除集合
show users 查询当前数据库的用户信息
use 数据库名称   切换数据库(隐式创建数据库)
db  db.getName()   查询当前所在数据库
db.help()  查询数据库操作命令
db.foo.help()  查询集合的操作命令
db.foo.find()   (由于没有查询条件)查询集合中所有数据 
db.foo.find(uid:1)   查询foo表中 uid为1的  文档(行)
db.foo.find(uid:{"$gt":10})   查询foo表 uid>10 的所有数据  $lt  小于
db.foo.find(uid:1,name:"张三")  查询 uid=1  and  name=“张三”  的数据
db.foo.find({"$or" :  [  {"id":1} , {id : { "$lt":20 } } ] })   查询id=1  或者id<20  的数据
db.foo.update({id:1}, {  新数据 })   更新id为1的  数据
db.StudentInfo.update( {name:"李四"} , { "$set" : {age:35} } )  修改name为李四的  年龄为35
db.foo.remove()  删除foo表中所有数据
db.foo.remove({  和find查询条件一样 })   删除满足条件的数据
db.foo.insert({   json   })  插入数据


<!--插入多条数据-->
db.foo.insert([
     {------},
     {------},
     {------}
  ])

MongoDB底层是由JS引擎实现的,所以支持部分JS代码
即可以使用for循环来实现多条数据的插入。

在这里插入图片描述
查询部分列:

db.foo.find( { 约束条件 } , { 显示列 } ) ; name:0 除name属性外都显示 name:1只显示name属性值
db.StudentInfo.find ( { age : { $lt : 20 } } ) 查询年龄小于20岁的学生信息

db.StudentInfo.find({age: { $in : [15,25,35] } } )   查询年龄是15,25,35,的学生信息

db.StudentInfo.find( { age:{$lt:20} , name:“吴庆友” } ) 查询年龄小于20岁 并且姓名为吴庆友的学生信息

db.StudentInfo.find({$or:[{ age:{$lt:20} },{ name:"李四"  }]})

补充:

db.foo.save({ _id, .....  });  
//把_id为***的文档修改为......  (覆盖)
db.StudentInfo.save({ "_id" : ObjectId("5f9bd08d86a2ee1b804a559d"),name:"张小三",sex:"男",age:25,adress:"山东省菏泽市",email:"12333222@qq,com",ClassInfo:{id:"301",className:"软件一班",pCount:35} })

db.foo.deleteOne( {} );//删除符合条件的一条数据  (官方推荐)
db.foo.deleteMany( {} );//(无条件)删除所有数据 (有条件)删除所有符合条件的数据
db.foo.findOne( {} );//查出符合条件的第一条数据
//模糊查询  正则
db.foo.find( { name: / 王者 / } );//名称 包含“王者”的 所有数据
db.foo.find( { name: /^张/ } );//名称 以“张” 开头
db.foo.find( { name: /三$/ } );//名称以 “三” 结尾

//$and 操作  $or
db.foo.find({$and:[ {name:"张三"} , {age:{$lt:20}} ]});//查询名称为“张三”,年龄小于20的所有数据
db.foo.find( { name:"张三",age:{$lt:20} } );//等同于上面的效果
db.foo.find( {$or:[ {name:"Zs"},{age:{$gt:30}} ]});//查询所有姓名为Zs或者年龄大于30的数据

//$type 应用  查询 某列 数据类型为**的所有数据
db.StudentInfo.find({age:{$type:"string"}})

//分页查询 limit函数 和  skip函数
db.foo.find({}).skip(5);//从结果集中过滤5条数据
db.foo.find({}).limit(4);//从结果集中取4条数据
db.foo.find({}).skip(5).limit(5);//跳过5条数据 取5条数据

//排序
db.foo.find({}).sort({age:1});//根据age  年龄 升序排序
db.foo.find({}).sort({age:-1});根据age  年龄  降序排序


创建索引:

db.foo.createIndex({ age:1 }, { background: true })

第一个参数 根据age 按照升序规则创建索引 -1按照降序规则排列
第二个参数[可选参数] 具体如下
在这里插入图片描述
查看索引:

db.foo.getIndexes()
db.foo.getIndexSpecs()
db,foo.getIndexKeys() 获取各个索引的键值
db.foo.totalIndexSize() 获取索引占据的总大小
db.foo.totalIndexSize([0]) 获取第1个索引所占据的大小

删除索引:

db.foo.dropIndex( “index_name” ) 删除指定索引
db.dropIndexes() 删除全部

重建索引 恢复出厂 重新创建 <减少内存空间的占用,优化了索引查询的效率>

db.foo.reIndex()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值