网站app的意义,中华建筑网官网,在线制作图片海腾娱乐,网站建设后台什么意思一、简介 MongoDB是一个NoSQL型的数据库#xff0c;基于分布式文档型储存数据库#xff0c;由C语言编写#xff0c;它的特点是开源、高性能、高可用、高扩展、易部署。支持 Golang、RUBY、PYTHON、JAVA、C、PHP等多种开发语言。
二、应用场景 MongoDB适用于高并发读写、数据…一、简介 MongoDB是一个NoSQL型的数据库基于分布式文档型储存数据库由C语言编写它的特点是开源、高性能、高可用、高扩展、易部署。支持 Golang、RUBY、PYTHON、JAVA、C、PHP等多种开发语言。
二、应用场景 MongoDB适用于高并发读写、数据量大、高可扩展性和高可用性且对事务要求不高的场景常用的应用场景有以下 1. 社交应用可以使用MongoDB来存储用户信息和朋友圈动态实现附近的人等功能。 2. 游戏使用MongoDB来存储用户基础信息以及游戏中的积分、等级以及装备等用户关联信息。 3. 物流使用MongoDB存储订单信息以及物流轨迹信息。 4. 物联网使用MongoDB存储各设备信息以及个设备的产生的日志信息以便于对设备进行分析、维护和预警。 5. 视频直播使用MongoDB来吃存储用户信息以及用户操作日志、点赞、收藏和评价。
三、基础操作
1、创建集合
集合的创建分为隐式创建和显式创建。
显式创建db.createCollection(name)。
隐式创建当向一个集合插入一个文档时如果集合不存在则会自动创建集合。
2、插入操作
insert插入插入单个数据。 db.user.insert({name:张三,age:19,sex:1}) insertMany插入插入多条数据。 db.user.insertMany([{name:李四,age:24,sex:1},{name:王五,age:20,sex:0}]) 3、查询操作
查询操作使用find()或findOne()进行查询其中findOne()只查询出一条数据。
find查询 db.user.find({age:20},{_id:0,age:1,name:1}); // 等同于select age,name from user where age20; 比较查询
操作操作符查询格式小于$lt{age:{$lt:18}} // where age18小于等于$lte{age:{$lte:18}} // where age18大于$gt{age:{$gt:18}} // where age18大于等于$gte{age:{$gte:18}} // where age18不等于$ne{age:{$ne:18}} // where age18 db.user.find({age:{$lt:30}}) //等同于 select * from user where age30; 逻辑查询
and查询 db.user.find({$and:[{age:20},{sex:0}]}); // 等同于 select * from user where age20 and sex0 或者缺省$and db.user.find({age:20,sex:0}) or查询 db.user.find({$or:[{age:{$lt:24}},{sex:1}]}); //等同于 select * from user where age24 or sex1 混合查询 db.user.find({$or: [{sex:1}, {$and: [{age:20},{sex:0}] }]}); //等同于 select * from user where sex1 orage20 and sex0 in 和nin 查询 db.user.find({age:{$in:[18,19,20]}}) //等同于 select * from user where age in (18,19,20) db.user.find({age:{$nin:[18,19,20]}}) //等同于 select * from user where age not in (18,19,20) 为空查询 db.user.find({name:{$exists:1}}); //等同于 select * from user where name is not null; 分页查询 db.user.find().skip(2).limit(2).sort({age:1}); //等同于 select * from user order by age asc limit 2,2; 分组查询
使用聚合方法aggregate()。 db.user.aggregate([{$group:{_id:$sex,min_age:{$min:$age}}}]) //等同于 select sex,min($age) from user group by sex; //获取男女中最小年龄 db.user.aggregate([{$group:{_id:$sex,sex_total:{$sum:1}}}]); //等同于 select sex,count(1) from user group by sex;// 统计男女的个数 其他聚合操作
操作 描述示例$avg计算平均值。db.user.aggregate([{$group:{_id:$sex,avg_age:{$avg:$age}}}])$max求最大值。db.user.aggregate([{$group:{_id:$sex,min_age:{$max:$age}}}])$push将值加入一个数组中不判断重复。db.user.aggregate([{$group:{_id:$sex,name:{$push:$name}}}])$addToSet将值加入一个数组中会判断是重复若重复则不加入。db.user.aggregate([{$group:{_id:$sex,name:{$addToSet:$name}}}])$first获取第一个文档数据db.user.aggregate([{$group:{_id:$sex,first_name:{$first:$name}}}])$last获取最后一个文档数据db.user.aggregate([{$group:{_id:$sex,last_name:{$last:$name}}}])
4、更新操作
db.user.update({查询条件},{更新操作}不存在时是否插入是否多条异常级别)。 db.user.update({name:张三},{$set:{age:40}}) // 将张三的年龄修改为40 db.user.update({name:张三},{$inc:{age:2}}) //将张三的年龄加2 5、删除操作
删除集合此操作慎用
db.user.drop();
删除文档
db.user.remove({查询条件})
四、索引
1. 创建索引
db.user.createIndex({age:1}) // 创建index_age 按升序排序
2. 查看索引
db.user.getIndexes()
3. 查看索引大小
db.user.totalIndexSize()
4. 删除索引
db.user.dropIndex(索引名)
db.user.dropIndexes();//删除集合所有索引
总结 本文主要介绍了MongoDB的常用的基础操作操作方式主要使用的是json类型的条件语句对json编写的要求较高其操作和MySQL的操作基本相同除了MongoDB没有join查询以外其他查询都支持后续会给大家分享MongoDB的安装和主从复制等内容。