欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > MongoDB基础学习总结

MongoDB基础学习总结

2024/10/24 20:15:05 来源:https://blog.csdn.net/2301_78494721/article/details/140752538  浏览:    关键词:MongoDB基础学习总结

MongoDB的介绍

1.什么是MongoDB?
    MongoDB是基于分布式文件存储的数据库,有C++编写旨在为WEB应用提供可扩展的高性能数据存储解决方案,是一个介于关系型数据库和非关系型数据库(nosql)之间的产品,是非关系数据库中功能最丰富,最像关系数据库的
2.MongoDB的优缺点:
    优点:
    ·MongoDB提供了一个面向文档存储,操作简单容易
    ·如果负载增加,它可以分布在计算机网络中的其他节点上(分片)
    ·MongoDB支持多种语言
    缺点:
    ·MongoDB不支持事务
    ·MongoDB不能进行多表联查
3.为什么学习MongoDB?
    MongoDB解决Mysql的“三高”问题:
        ·对数据库高并发写入
        ·对海量数据高效率存储访问需求
        ·对数据库高扩展和高可用需求
4.实际应用:
    1.社交场景:朋友圈,附近的人的地点的存储
    2.游戏场景:比如用户当前装备,得分
    3.物流场景:快递的位置,状态,途径
    4.视频场景:直播中的点赞数和互动留言

MongoDB的名词解释

MongoDB的数据类型

MongoDB的基本操作:

数据库基础命令:
//查看所有数据库
可以直接访问这些有特殊作用的数据库
admin:’root‘数据库(权限的角度),要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限,一些特定的服务器端命令也只能从这个数据库运行
local:这个数据库永远不会被复制,可以用来存储限于本地单台服务器的任意集合
config:当mongoDB用于分片设置,config数据库在内部使用,用于保存分片的相关信息show dbs;//创建并使用数据库(在MongoDB,集合只有在内容插入后才会真正创建)
// 语法:use  数据库名;
use myschool;查看当前数据库对象
db;//删除数据库
db.dropDatabase();
数据集合(表)操作
//集合(相当于mysql的表)
//在当前库中创建集合(表)
// 语法:db.createCollection('集合名')
db.createCollection('student')//查看当前库的集合(表),以下语句都可以
show collections;
show tables;//删除集合
//语法: db.集合名.drop();
db.student.drop();
数据文档(文档相当于mysql中的一条数据记录)基础操作:(增删改查)
//1.插入数据
// document:  类似 json 格式的键值对
// 语法:db.collection名.insert(document)
db.student.insert({sname:'李四',age:15})//删除数据
//全部删除
// 语法:db.集合名.remove({});
db。student.remove({});//带条件删除 : 会把符合条件的全部是删掉
db.student.remove({sname:'张三'});//带条件删除:{justOne:true}  只删除 符合条件 键编号较小 的一条数据
db.student.remove({age:15},{justOne:true});修改数据 :{$set:{新值}
//如果1有对各结果符合条件是,只改_id最小的
db.student.update({sname:'张三'},{$set:{age:199}});//{multi:true}:把符合条件的都修改
db.student.update({sname:'张三'},{$set:{age:88},{multi:true}});//{upsert:true} ://没匹配到数据就作为新增数据添加到集合中
db.student.update({sname:'大头儿子'},{$set:{age:55}},{upsert:true})//{$inc:{}}:数值改变:可加可减(点赞功能实现)
//年龄加1,  
db.student.update{{sname:'大头儿子'},{$inc:{age:1}}
}
// {$inc:{age:-1}}:年龄减1//查询
//全查
db.student.find();//根据条件查询:符合条件的全部查到
db.student.find({sname:'大头儿子'});//数值判断条件查询
//小于88岁的人
db.student.find({age:{$lt:88}})//40-90之间的,相当于and
db.studnet.find({age:{$lt:90,$gt:40}})//or 查询大于18,或者小于90的
db.student.find({$or:[{age:{$gte:18}},{age:{$lte:90}}]})//模糊查询
//查询sname中包含 儿的 名字
db.student.find({sname:/儿/});
//查询以什么开头:以大开头
db.student.find({sname:/^大/});
//查询以什么结尾
db.student.find({sname:/子$/});//分页:
//语法:db.集合名.find().limit(n);
//查询前两条数据
db.student.find().limit(2);//跳过多少条查询n条数据
db.集合名.find().limit(n).skip((页码-1)*步长);
//跳过4条数据,查询2条
db.student.find().limit(2).skip(4);
MongoDB的数据比较符

数据的分页,排序,索引:
//统计个数
db.student.find({sname:'大头儿子'}).count()//排序
// 升序:1   //降序:-1
//年龄升序
db.studnet.find().sort({age:1})
//年龄降序
db.studnet.find().sort({age:-1});//查看索引,//默认是主键
db.studnet.getIndexes()//创建索引:
db.student.createInex({age:1})
//删除索引
db.student.dropIndex({age:1});

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com