MongoDB

MongoDB是一个文档型数据库,存储的是key:value,类似json数据 。是一个分布式,高性能的数据库。
1.MongoDB怎样创建数据库
use chat 会去检测chat数据库是否存在 不存在 创建+定位 存在直接定位
2.查看里面的所有数据库
show dbs; 显示所有的数据库 但是里面可能不存在你创建的数据库
原因是你的数据库里面什么数据都没有
要想显示创建的数据库 得向数据库添加数据
db.chat.insert({“name”:“张三”});
show dbs; 显示你创建的数据库
3.删除数据库
db.dropDatabase(); 删完之后会显示 ok:1
4.创建集合 collection 集合类似mysql的表 只不过存储的是文档json
db.createCollection(name,options);
name 为创建的集合名称 options设置当前集合的相关属性 可选
5.删除集合
db.collection.drop(); //db.user.drop(); true 删除成功
6.显示集合
show collections;
7.插入文档
db.user.insert({name:"",sex:"",age:""});
eg:

  db.user.insert({name:"张三",age:20,sex:"男",hobby:["篮球","足球","羽毛球"],address:"西安市"});

8.插入文档的时候可以把数据定义为变量

  txt=({name:"李四",age:19,sex:"男"});
  db.user.insert(txt);

9.查找数据
db.collection.find(); 查找当前集合的所有数据
10.更新文档
参数1:条件 参数2 : 更新字段 使用关键字$set

  db.user.update({name:"张三"},{$set:{age:29}});

备注: 修改默认修改第一条 可选参数multi 默认是false
修改找到的多条数据

  db.user.update({name:"毛豆"},{$set:{age:20}},{multi:true});

这样就可以把找到的多条毛豆 年龄修改
修改的时候找不到修改的数据
可选参数 upsert 默认是false 不插入 true插入

  db.user.update({name:"王五"},{$set:{age:20,sex:"女"}},{upsert:true,multi:false});

11.文档替换 save()
db.user.save({}); 里面的数据_id和要替换的数据_id一致
12.删除文档
db.user.remove(); 不写条件是所有的数据删除
db.user.remove({name:“毛豆”});
官方推荐
db.user.deleteOne({}); 条件 删除一条
db.user.deleteMany({}) 条件 删除多条 不写条件是全部删除
13 文档条件式查找
= gt gte lt lte ne

  db.user.find({age:18});
  db.user.find({age:{$lt:20}});
  db.user.find({age:{$lte:20}});
  db.user.find({age:{$gt:20}});
  db.user.find({age:{$gte:20}});
  db.user.find({age:{$ne:20}});

and条件查找

  db.user.find({name:"毛豆",age:{$lt:20}});

or条件查找

  db.user.find({$or:[{name:"毛豆"},{name:"张三"}]});

and和or连用

  db.user.update({age:{$lte:20}},{$set:{name:"张三"}});

修改文档找到多条数据 默认修改第一条 设置 multi:true 全部修改
14.$type 操作符 根据类型过滤数据

  db.user.find({name:{$type:"object"}});

15.limit skip 方法
limit 读取多少条数据 skip 跳到某个位置
数据分页

  db.user.find().skip(0).limit(3);

16.模糊查找 /

  db.user.find({name://});

17.排序 sort() 1 正序 -1 倒序

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

18.mongodb实现自动增长
建立一个辅助的集合 实现增长

  db.createCollection("count");

给count集合添加数据

  db.count.insert({_id:"proId",autonum:0});

建立函数 操作count集合里面autonum字段自增
$ inc 关键字 实现自增自减操作的

 function getNext(idName){
   var obj=db.count.findAndModify(
   {
      query:{_id:idName},
      update:{$inc:{autonum:1}},
      "new":true
   });
   return obj.autonum;
   };

//某个表里面实现_id 自增

  db.msg.insert({_id:getNext("proId"),name:"张三"});

19.索引 作用是 提高查询的效率
这里的正负1 代表正序和倒序

  db.user.createIndex({name:1});
这个创建索引也行
  db.user.ensureIndex({name:1}); 

获取集合里面的索引

  db.user.getIndexes();

删除索引

  db.user.dropIndex({name:1});

检测查询语句的执行速度

  db.user.find({name:"李四"}).explain("executionStats");

创建复合索引

  db.createIndex({name:1,sex:1});

查询效率更高
20.聚合
聚合表达式:$sum 总和 $avg 平均数 $min $max
aggregate 类似 count(*)

  db.user.aggregate([{$group:{_id:"$name",num:{$sum:1}}}]);

管道:
$project 过滤字段

  db.user.aggregate({
  $project:{name:1,_id:0}	
  });

只输出user集合 name字段

$match 用于过滤数据的
$limit 返回几条数据
$skip 跳到文档的某个位置
$group 按照那个字段分组 分组的时候要使用聚合表达式
$sort 文档输出排序

  db.user.aggregate([
   {$project:{name:1,_id:0,sex:1,age:1}},
   {$match:{age:{$lte:25,$gte:20}}},
   {$sort:{age:1}},
   {$group:{_id:"$name",avgage:{$avg:"$age"}}},
   {$skip:3},
   {$limit:3}
  ]);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值