【Java、MongoDB】程序控制非关系数据库
步骤:
(1)连接
连接字符串
(2)CRUD
类与接口
解析
(3)maven管理方法
依赖
<dependency><groupId>org.mongodb</groupId><artifactId>mongodb-driver-legacy</artifactId><version>4.10.2</version></dependency>
示例
package org.example;import com.mongodb.client.*;
import org.bson.Document;import java.util.Arrays;/*** @author gzb Email:a@wk2.cn* @since 2023/11/06 14:27*/
public class t1 {public static void main(String[] args) {MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");MongoDatabase mongoDatabase = mongoClient.getDatabase("myDB");MongoCollection<Document> collection = mongoDatabase.getCollection("video");System.out.println("before operation");insertExample(collection);System.out.println("after operation");FindIterable<Document> documents = collection.find();for (Document document: documents){System.out.println(document.toJson());}mongoClient.close(); // 记得关闭客户端连接}private static void insertExample(MongoCollection<Document> collection) {collection.insertMany(Arrays.asList(new Document("title", "MongoDB installation").append("author", "Mike").append("tags", Arrays.asList("MongoDB", "database")).append("views", 1221).append("evaluation", new Document("like", 22).append("forward", 10)),new Document("title", "Java programming ").append("author", "Mike").append("tags", Arrays.asList("Java", "course")).append("views", 3411).append("evaluation", new Document("like", 112).append("forward", 32)),new Document("title", "Music recommend").append("author", "Joe").append("tags", Arrays.asList("music", "pop")).append("views", 38).append("evaluation", new Document("like", 2))));}}
操作
插入
private static void insertExample(MongoCollection<Document> collection) {collection.insertMany(Arrays.asList(new Document("title", "MongoDB installation").append("author", "Mike").append("tags", Arrays.asList("MongoDB", "database")).append("views", 1221).append("evaluation", new Document("like", 22).append("forward", 10)),new Document("title", "Java programming ").append("author", "Mike").append("tags", Arrays.asList("Java", "course")).append("views", 3411).append("evaluation", new Document("like", 112).append("forward", 32)),new Document("title", "Music recommend").append("author", "Joe").append("tags", Arrays.asList("music", "pop")).append("views", 38).append("evaluation", new Document("like", 2))));}
删除
private static void delete(MongoCollection<Document> collection){collection.deleteMany(Filters.eq("author", "Joe"));}
更新
private static void update(MongoCollection<Document> collection) {collection.updateOne(new Document("title", "MongoDB installation").append("author", "Mike"),Updates.inc("views", 1));}
还有set,pop,push等操作
替换
private static void replace(MongoCollection<Document> collection) {collection.replaceOne(Filters.eq("author", "tom"), new Document("author", "jacky").append("count",2));}
查找
private static void select(MongoCollection<Document> collection) {Bson filter = Filters.gt("evaluation.like", 10);FindIterable<Document> documents = collection.find(filter);for (Document document : documents) {System.out.println(document.toJson());}}
分组
MongoCursor<Document> mongoCursor = collection.aggregate(Arrays.asList(Aggregates.match(Filters.empty()),Aggregates.group("$author", Accumulators.sum("count", 1)))).cursor();
相关文章:
【Java、MongoDB】程序控制非关系数据库
步骤: (1)连接 连接字符串 (2)CRUD 类与接口 解析 (3)maven管理方法 依赖 <dependency><groupId>org.mongodb</groupId><artifactId>mongodb-driver-legacy<…...
MySQL查询时间处理相关函数与方法实践笔记
1. 实践案例 在查询mysql数据库获取数据时,有这样一个需求:按每30分钟分组获取电量数据,形成1天48个数据点。 方法一: select hour(a.CreateTime) 时点,case when MINUTE(a.CreateTime)<30 then 1 else 2 end 半小时,sum(a…...
springboot全局拦截sql异常
起因:非法用户可通过特定的输入(如输入内容超长)等操作,使后台逻辑发生错误,从而使后台sql语句暴露至前台,进而为sql攻击提供条件 处理流程:经查找com.mysql.cj.jdbc.exceptions的父类为SQLException,在全局异常处理类中增加如下配置,经测试不起作用 ExceptionHandler(SQLExce…...
AlGaN/GaN HFET 五参数模型
标题:A Five-Parameter Model of the AlGaN/GaN HFET 来源:IEEE TRANSACTIONS ON ELECTRON DEVICES(15年) 摘要—我们引入了AlGaN/GaN异质结场效应晶体管(HFET)漏极电流Id(Vgs,Vds…...
矩阵的除法
B/A 如果矩阵A可逆,那么 证明: A/AB 如果矩阵A和B都可逆,那么 证明:...
Java中的 向上转型 | 向下转型
目录 一.向上转型 直接赋值 总结: 通过传参 通过返回值 二.向下转型 instanceof 一.向上转型 向上转型其实就是创建一个子类对象,并将其当作父类对象来使用,一般语法格式如下: 父类类型 对象名 new 子类类型() 一般有以…...
【华为OD机试AB高分必刷题目】朋友圈(C++-并查集Union-Find实现)
🚀你的旅程将在这里启航!本专栏所有题目均包含优质解题思路,高质量解题代码,详细代码讲解,助你深入学习,高分通过! 文章目录 【华为OD机试AB高分必刷题目】朋友圈(C++-并查集Union-Find实现)题目描述解题思路C++题解代码代码OJ评判结果代码讲解寄语【华为OD机试AB高分…...
前端面试题之vue篇
vue基础 vue的基本原理 当一个Vue实例创建时,Vue会遍历data中的属性,用Object.defineProperty(Vue使用proxy)转换为getter/setter,并且在内部追踪相关依赖,在属性被访问和修改时通知变化。每个组件实例都有相应的watcher程序实例…...
Java进阶(垃圾回收GC)——理论篇:JVM内存模型 垃圾回收定位清除算法 JVM中的垃圾回收器
前言 JVM作为Java进阶的知识,是需要Java程序员不断深度和理解的。 本篇博客介绍JVM的内存模型,对比了1.7和1.8的内存模型的变化;介绍了垃圾回收的语言发展;阐述了定位垃圾的方法,引用计数法和可达性分析发以及垃圾清…...
GaN HEMT 电容的分析建模,包括寄生元件
标题:Analytical Modeling of Capacitances for GaN HEMTs, Including Parasitic Components 来源:IEEE TRANSACTIONS ON ELECTRON DEVICES(14年) 摘要:本文提出了一种基于表面势的终端电荷和电容模型,包…...
Python实战 | 使用 Python 和 TensorFlow 构建卷积神经网络(CNN)进行人脸识别
专栏集锦,大佬们可以收藏以备不时之需 Spring Cloud实战专栏:https://blog.csdn.net/superdangbo/category_9270827.html Python 实战专栏:https://blog.csdn.net/superdangbo/category_9271194.html Logback 详解专栏:https:/…...
JLink edu mini 10Pin接口定义
注意:SWD接口在阵脚2,4;而20Pin的SWD接口在阵脚7,9 参考:1 官网资料; 2 【润石RS0104YQ Demo开发板测试分享】J-Link EDU Mini调试5V系统_国产运算放大器_模拟开关_线性稳压器_电平转换器_小逻辑_比较器…...
compile: version “go1.19“ does not match go tool version “go1.18.1“
** 1 安装了新版本的go后 为什么go version 还是旧版本? ** 如果你已经按照上述步骤安装了新版本的 Go,但 go version 命令仍然显示旧版本,可能是因为你的环境变量设置不正确或未正确生效。你可以尝试以下方法来解决问题: 重新…...
spring boot security 自定义AuthenticationProvider
spring boot security 自定义AuthenticationProvider 基于 spring boot 3.x 场景实现 手机验证码登陆 实现 CaptureCodeAuthenticationFilter public class CaptureCodeAuthenticationFilter extends AbstractAuthenticationProcessingFilter {private static final Strin…...
某电力设计公司绩效考核优化项目成功案例纪实
——引入角色定位考核法,建立多维度评价体系,支持业务转型后的客观评价 【客户行业】电力行业 【问题类型】绩效考核 【客户背景及现状分析】 某电力设计公司成立于2000年左右,是一家从事输变电工程勘察、设计、咨询的专业公司,…...
力扣371周赛
力扣第371场周赛 找出强数对的最大异或值 I 枚举 class Solution { public:int maximumStrongPairXor(vector<int>& a) {int n a.size() , res 0;for(int i 0 ; i < n ; i ){for(int j 0 ; j < n ; j ){if(abs(a[i]-a[j])<min(a[i],a[j])){int c (a…...
Python之字符串、正则表达式练习
目录 1、输出随机字符串2、货币的转换(字符串 crr107)3、凯撒加密(book 实验 19)4、字符替换5、检测字母或数字6、纠正字母7、输出英文中所有长度为3个字母的单词 1、输出随机字符串 编写程序,输出由英文字母大小写或…...
Transmit :macOS 好用的 Ftp/SFtp 工具
Transmit 是一种功能强大的 FTP/SFTP/WebDAV 客户端软件,是一个 Mac OS X 平台上设计的文件传输软件。它由 Panic(一家以软件工具为主的公司)开发和维护,是一款非常受欢迎且易于使用的软件,而且被广泛认为是 Mac OS X …...
【Github】git clone命令下载文件中途停止
方法一: 使用git clone命令下载github上的源代码时,有时文件下载到一定百分比时就停止不动, 这是因为我们所下载的文件很大,超过了git预先分配的Postbuffer容量,所以一直卡在那里。可以使用以下命令查看当前Postbuffe…...
Clickhouse学习笔记(10)—— 查询优化
单表查询 Prewhere 替代 where prewhere与where相比,在过滤数据的时候会首先读取指定的列数据,来判断数据过滤,等待数据过滤之后再读取 select 声明的列字段来补全其余属性 简单来说就是先过滤再查询,而where过滤是先查询出对应…...
深入DDR5模式寄存器:从DFE均衡器到时序约束的底层原理剖析
深入DDR5模式寄存器:从DFE均衡器到时序约束的底层原理剖析 在高速内存技术领域,DDR5正以突破性的性能表现重新定义数据处理边界。当我们谈论DDR5的革新时,模式寄存器(Mode Register)作为内存子系统中的"神经中枢&…...
从编译到闪灯:用Keil5 MDK-ARM完成你的第一个STM32点灯程序(超详细避坑指南)
从零点亮STM32:Keil5 MDK-ARM实战指南与避坑全解析 当你第一次拿到STM32开发板时,最令人兴奋的莫过于让板载的LED灯按照你的指令闪烁。这不仅是一个简单的"Hello World",更是打开嵌入式世界大门的钥匙。本文将带你用Keil5 MDK-ARM完…...
【信息科学与工程学】【通信工程】【制造工程】【产品体系】第六十一篇 数据中心核心交换机全生命周期工序列表 第三十七卷
第三十七卷:国际化:全球市场拓展(第2351-2400章)章号范围章标题章节示例该章预估工序数关键时序节点2351-2360全球准入与认证攻坚2353.2.5 CE-EMC指令符合性测试(EN 55032/35)800T-180天 ~ T-90天2361-2370多区域电气与安全…...
造相Z-Image文生图模型v2避坑指南:显存优化与参数设置技巧
造相Z-Image文生图模型v2避坑指南:显存优化与参数设置技巧 1. 为什么需要关注显存优化 在本地部署造相Z-Image文生图模型v2时,显存管理是决定成败的关键因素。这个拥有20亿参数的模型虽然经过深度优化,但在实际使用中仍然可能遇到显存不足的…...
基于VC++的OBD2蓝牙诊断仪开发实战指南
1. 开发环境搭建与硬件准备 搞OBD2蓝牙诊断仪开发,首先得把家伙事儿备齐。我当年第一次折腾这个的时候,光找兼容的蓝牙模块就花了三天,这里把踩过的坑都给你总结好了。 开发主机建议用Windows 10/11系统,Visual Studio 2019或2022…...
LFM2.5-1.2B-Thinking-GGUF轻量化优势展示:与更大参数模型的效率对比
LFM2.5-1.2B-Thinking-GGUF轻量化优势展示:与更大参数模型的效率对比 1. 小模型的大能量 在AI领域,大参数模型往往被视为性能的代名词。但今天我们要展示的LFM2.5-1.2B-Thinking-GGUF模型,将彻底改变这一认知。这个仅有12亿参数的"小个…...
如何用Office RibbonX Editor轻松实现Office功能区定制
如何用Office RibbonX Editor轻松实现Office功能区定制 【免费下载链接】office-ribbonx-editor An overhauled fork of the original Custom UI Editor for Microsoft Office, built with WPF 项目地址: https://gitcode.com/gh_mirrors/of/office-ribbonx-editor 你是…...
LangChain教程-、Langchain基础严
简介 AI Agent 不仅仅是一个能聊天的机器人(如普通的 ChatGPT),而是一个能够感知环境、进行推理、自主决策并调用工具来完成特定任务的智能系统,更够完成更为复杂的AI场景需求。 AI Agent 功能 根据查阅的资料,agent的…...
granite-4.0-h-350m实战教程:Ollama本地大模型部署+韩语技术文档理解+代码补全
granite-4.0-h-350m实战教程:Ollama本地大模型部署韩语技术文档理解代码补全 想在自己电脑上跑一个能看懂韩语技术文档、还能帮你写代码的AI助手吗?今天我们就来聊聊怎么用Ollama部署一个轻量但功能强大的模型——granite-4.0-h-350m。 这个模型只有3.5亿…...
Alibaba DASD-4B Thinking 在AI编程(AIGC for Code)中的应用:代码补全与Bug自动修复
Alibaba DASD-4B Thinking 在AI编程(AIGC for Code)中的应用:代码补全与Bug自动修复 你是不是也经历过这样的时刻?盯着屏幕上的函数名和寥寥几行注释,大脑一片空白,不知道从何下手写代码。或者,…...
