mongoDB学习记录

B站讲解视频

java操作mongoDB

{}相当于一个document对象(org.bson包下);
document.append(Sting value,Object object) 后面若需要传入数组对象,需要list
在这里插入图片描述

1.插入多条数据

在这里插入图片描述

2.更新操作

2.1 更新单个键

相对于脚本 是把一个{} 换成一个document对象

相对于脚本 是把一个{} 换成一个document对象

2.2 更新多个键

在这里插入图片描述

2.3 更新文档中的数组

在这里插入图片描述
在名字为 lisi 的人里面 userlike 数组里面加东西(对数组更新用 $push):
在这里插入图片描述

3. 查询

collection.find 返回的是一个迭代器 finditerable

3.1 查询所有文档

在这里插入图片描述

上面的 cursor 相当于是取出集合的所有指针,用cursor.next会移动指针

3.2 通过主键查询

注意文档中的id为 object ,而java中是以 Sring匹配的,所以需要转
在这里插入图片描述

3.3 查询多个文档

3.3.1 以 大于($gt) 示例

在这里插入图片描述

根据年龄查询文档,条件:大于19:
在这里插入图片描述

3.3.2 $in(包含)

查询username包含zhangsan1,zhangsan2的文档

后面直接用 ,拼接起来
在这里插入图片描述

3.3.3 $nin

查询username 不包含zhangsan1,zhangsan2的文档
在这里插入图片描述

3.3.4 $regex(根据正则表达式)

在这里插入图片描述
查询上面用户的名字 是以 z 开头 2 结束的文档:
在这里插入图片描述
在这里插入图片描述

3.3.5 $and

查询名字为zhangsan1 并且年龄为 20 并且userdesc 为 OK 的文档
在这里插入图片描述

FindIterable iterable = collection.find(
Filters.and(
	Filters.eq("username","zhangsan1"),
	Filters.eq("userage",20),
	Filters.eq("userdesc","OK" )
)
	);                     
3.3.6 $or

在这里插入图片描述
在这里插入图片描述

3.3.7 $and 与 $or 联合使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3.8 排序处理

在这里插入图片描述
在这里插入图片描述
查询代码:
在这里插入图片描述

4.日期操作

4.1 插入系统当前日期

在这里插入图片描述
在这里插入图片描述

上面代码中 new Date() 是标准时间,但是mongo在插入的时候 会做带时区处理,导致少了8个小时,后面用new Date() 查询出来的时间会是正常的,因为java 工具包date支持时区转换,会帮我们转化成系统对应时区时间。意思就是数据库中的存的时间 和 拿到的时间可能不一样。

4.3 插入指定日期

需要使用SimpleDateFormat工具类将给定字符串转成日期格式
在这里插入图片描述
在这里插入图片描述

4.4 查询日期

在这里插入图片描述
在这里插入图片描述

4.4.1 查询日期 — $gt

在这里插入图片描述
在这里插入图片描述

5.聚合操作

5.1 $sum

脚本中:
在这里插入图片描述
java中:

collection.aggregate() 返回的是AggregateIterable ,与前面的collection.find()区别
在这里插入图片描述

在这里插入图片描述

整体代码:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5.1.1 计算值的总和 --$sum

脚本中:
在这里插入图片描述
换成java:
在这里插入图片描述

5.1.2 在分组中计算值的总和

脚本:
在这里插入图片描述
Java中会返回多条(多组)

5.2 $match

在这里插入图片描述

5.3 $project–投影约束

在这里插入图片描述

$unwind // 将数组元素做一个拆分

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5.3.1 project 字符串处理

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.3.2 project 算数运算

在这里插入图片描述

6.分页查询

在这里插入图片描述
上面的代码用skip会全局扫描,所以适合数据量少的时候,数据量多的时候采用下面:
使用条件判断替换 skip —但不支持跳页

补充

管道操作

在这里插入图片描述
例如:
在这里插入图片描述

上面的数组里的每一个大括号就是 一个管道

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值