MongoDB学习笔记番外篇:JDBC方式操作MongoDB示例

2023-11-01

1. pom.xml中依赖包设置

在项目中引入MongoDB JDBC 驱动mongo-java-driver-X.X.X.jar

<dependency>
	<groupId>org.mongodb</groupId>
	<artifactId>mongo-java-driver</artifactId>
	<version>3.4.0</version>
</dependency>

2. 示例类

package memo.java.by.eric; 

import java.util.ArrayList;
import java.util.List;

import org.bson.Document;

import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;

public class MongoDBJDBCDemo {
	public static void main(String args[]) {
		try {
			// 连接到 mongodb 服务
			MongoClient mongoClient = new MongoClient("localhost", 27017);
			// 连接到数据库hello
			// 如果指定的数据库不存在,MongoDB会自动创建数据库
			MongoDatabase mongoDatabase = mongoClient.getDatabase("hello");
			System.out.println("连接到数据库hello");
			// 创建集合
			mongoDatabase.createCollection("students");
			System.out.println("集合students创建成功");
			// 选择集合
			MongoCollection<Document> collection = mongoDatabase.getCollection("students");
			System.out.println("集合students选择成功");
			// 插入文档
			/**
			 * 1. 创建文档 org.bson.Document 参数为key-value的格式 2. 创建文档集合List<Document>
			 * 3. 将文档集合插入数据库集合中 mongoCollection.insertMany(List<Document>)
			 * 插入单个文档可以用 mongoCollection.insertOne(Document)
			 */
			Document document = new Document("name", "老司机").append("age", 31);
			List<Document> documents = new ArrayList<Document>();
			documents.add(document);
			collection.insertMany(documents);
			System.out.println("文档插入成功");
			// 更新文档
			// 将文档中age=31的文档修改为age=32
			collection.updateMany(Filters.eq("age", 31), new Document("$set", new Document("age", 32)));
			System.out.println("文档更新成功");
			// 检索所有文档
			/**
			 * 1. 获取迭代器FindIterable<Document> 2. 获取游标MongoCursor<Document> 3.
			 * 通过游标遍历检索出的文档集合
			 */
			FindIterable<Document> findIterable = collection.find();
			MongoCursor<Document> mongoCursor = findIterable.iterator();
			while (mongoCursor.hasNext()) {
				System.out.println(mongoCursor.next());
			}
			// 删除符合条件的第一个文档
			collection.deleteOne(Filters.eq("name", "老司机"));
			// 删除所有符合条件的文档
			collection.deleteMany(Filters.eq("name", "老司机"));
			// 关闭连接
			mongoClient.close();
		} catch (Exception e) {
			System.err.println(e.getClass().getName() + ": " + e.getMessage());
		}
	}
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoDB学习笔记番外篇:JDBC方式操作MongoDB示例 的相关文章

  • 多个 2dsphere 索引,不确定要运行 geoNear 中的哪一个

    我在用 geoNear and near在 MongoDB 的聚合内部 我有将我的 MongoDB 数据库托管到 mlabs 中 And 我本地一切正常 但不知道为什么当我部署应用程序时出现以下错误 geoNear 命令失败 ok 0 0
  • 如何在docker compose中运行mongodb副本集

    我尝试在我的 Mac 中使用 mongodb community 在本地运行 mongodb 副本集MongoDB 文档 https docs mongodb com manual tutorial convert standalone t
  • Mongo:按键查询一层深

    是否可以在 Mongo 查询中使用 存在 之类的内容来根据 ID 返回此记录 就像是选择 ids 包含密钥 123456 的位置 department Digging ids 123456 color blue 123457 color r
  • Mongodb聚合框架:$group是否使用索引?

    我正在尝试使用聚合框架 match and group阶段 做 group阶段使用索引数据 我正在使用最新的可用 mongodb 版本 2 5 4 group不使用索引数据 来自 mongoDBdocs http docs mongodb
  • 我可以通过mongo shell重启mongodb服务器吗?

    我可以通过 mongo CLI 客户端重新启动 MongoDB 服务器吗 您无法从客户端停止和启动 重新启动 它 正如 i kimiko 已经提到的 你可以在客户端上关闭它db shutdownServer 通过 mongo shell数据
  • 使用mongodb聚合框架按数组长度分组

    我有一个看起来像这样的集合 id id0 name saved things id id1 name saved things id id2 name saved things etc 我想使用 mongodb 的聚合框架来得出一个直方图结
  • Mongo JSON 文档 -> JSON -> BSON

    我正在使用 Node js 构建一个使用 mongodb 的 Web 套接字服务器 我使用 node mongodb native 作为访问 mongodb 的库 当我对数据库中的对象调用 console log sys inspect i
  • MongoDB:如何使用单个命令更新多个文档?

    我惊讶地发现以下示例代码仅更新单个文档 gt db test save id 1 foo bar gt db test save id 2 foo bar gt db test update foo bar set test success
  • mongodb在windows下无法启动?

    当我尝试在命令行上使用命令 mongod exe 启动 mongodb 时 它会抛出以下错误 C mongodb win32 x86 64 2 0 6 bin gt mongod exe mongod exe help for help a
  • 聚合和展开数组,但保留顶级键

    假设我的收藏中有以下文档Classes收藏家 id ObjectId 5df58d45244a850d54b922c8 mentors numOfMentors NumberInt 1 mentorList ObjectId 5c9ba63
  • Mongoose嵌入式文档更新

    我在嵌入式文档更新方面遇到问题 我定义的架构 var Talk new Schema title type String required true content type String required true date type D
  • Mongodb 限制聚合查询中的数组

    我正在尝试编写一个查询来返回每个类别中的前 X 个术语 例如前 5 个 前 10 个等 每个术语都有一个关联的类别 并且基于另一个术语的帮助堆栈溢出问题 https stackoverflow com questions 25666187
  • Mongodb 通过查询和分组查找

    简单收集 id 123 name FooBar zone Bas id 456 name Alice zone Bas id 789 name FooBar zone Bas 首先 我构建一个查询来按名称查找所有元素 db collecti
  • Mongodb 聚合嵌套组以及最近更新的文档

    我已经在我的集合中指定了人员 状态 如下所示 ASSIGN ID 583f84bce58725f76b322398 SPEC ID 58411771 STATUS 1 UPDATE DATE ISODate 2016 12 21T04 10
  • 无法连接到服务器 127.0.0.1:27017 连接尝试失败 MongoDB

    我正在使用 Ubuntu 操作系统 16 04 我正在使用命令启动 mongodb sudo service mongod start进而mongo 它为我生成了这个错误 MongoDB shell version v4 0 1 conne
  • 如何验证 ObjectID

    使用 Joi 模式验证 是否可以针对 MongoDB ObjectID 进行验证 像这样的事情可能很棒 id Joi ObjectId required error errorParser 我发现如果我这样做 Joi object id J
  • Mongodump之后,调用MongoRestore挂起

    我们正在尝试在相对较小的数据库上做一个简单的 MongoDump 我们的步骤很简单 export 从目标机器上删除现有数据库 在目标机器上导入 MongoDump 完美执行 mongodump out root mongo prod DB
  • 将 SQL 数据中的一行映射到 Java 对象

    我有一个 Java 类 其实例字段 以及匹配的 setter 方法 与 SQL 数据库表的列名相匹配 我想优雅地从表中获取一行 到 ResultSet 中 并将其映射到此类的实例 例如 我有一个 Student 类 其中包含实例字段 FNA
  • Pymongo 批量插入

    我正在尝试批量插入文档 但批量插入时不会插入超过 84 个文档 给我这个错误 in insert pymongo errors InvalidOperation cannot do an empty bulk insert 是否可以批量插入
  • 如何处理 MongoDB 的断开连接错误

    我在 Node js 进程中看到了这个未捕获的异常 Uncaught exception Error read ETIMEDOUT at TCP onStreamRead internal stream base commons js 16

随机推荐

  • 结合Thrift示例详解网络服务模型(多线程阻塞IO、多线程非阻塞IO、多Reactor模型)

    文章目录 组件介绍 网络服务模型 单线程阻塞IO 多线程阻塞IO 单线程非阻塞IO 多线程非阻塞IO 多Reactor模型 组件介绍 Thrift是一个轻量级 跨语言的RPC框架 主要用于各个服务之间的RPC通信 它通过自身的IDL中间语言
  • c++中的四种cast转换, dynamic_cast、static_cast、const_cast、reinterpret_cast

    C 11之后 C 中就有四种类型转换 分别是 dynamic cast static cast const cast reinterpret cast 一般用这四种强制转换可以替代在c代码中类似 int 这种方式的转换 下面就分别对着四种强
  • 1、测试用例通用模板

    一 针对大版本需求的测试用例模板 1 测试用例模板说明 1 1 表头说明 项目版本号V1 0 测试用例 示例标题 xxxxx有限公司测试组 ONLY FOR INTERNAL USE ONLY Confidentiality level 密
  • pandas面板(Panel)

    面板 Panel 是3D容器的数据 面板数据一词来源于计量经济学 部分源于名称 Pandas pan el da ta s 3轴 axis 这个名称旨在给出描述涉及面板数据的操作的一些语义 它们是 items axis 0 每个项目对应于内
  • 多益网络校招 -- 主观题

    1 你认为这世界中各种事物 公平吗 2 你是否希望中国人多生孩子 3 这是一个周六 你原计划周日去健身房跑步1小时 再去江边散散步 你的直属上级的直属上级主管 要你明天去他家领个包裹 亲自开车2小时送到某地点交给指定的人 你会如何做 4 你
  • 译: Code::Blocks手册 使用篇

    原手册下载 http www codeblocks org docs manual en pdf 译者 JGood http blog csdn net Jgood 译者言 工欲善其事 必先利其器 一个好的工具能事半功倍 写程序时 特别是写
  • Linux在启动Tmocat时,报权限不够

    如图 可以在命令行里输入 chmod u x sh 然后在 startup sh 如 这样就启动起来了 不过为什么这样呢 我们也要明白原因 chmod 是权限管理命令change the permissions mode of a file
  • mysql 聚合函数非重复(distinct)查询

    聚合函数非重复 distinct 查询 计算去重后的数据行数 select count distinct product type from product 计算数据行数后再去重 select distinct count product
  • mysql2003错误_mysql出现2003错误的原因及解决方法

    一 mysql数据库没有启动 启动方法 开始 gt 运行 gt services msc 在里面找到名称为MySQL的服务 双击打开属性 点启动 2 使用下面的命令启动net start mysql 二 MySQL 服务器资源紧张 导致无法
  • ftp服务器一直显示登录密码,ftp一直弹出用户名密码

    大家好 我是时间财富网智能客服时间君 上述问题将由我为大家进行解答 ftp一直弹出用户名密码的原因 1 用户名密码错误 2 有防火墙拒绝连接你的ip 3 服务器架设问题 4 输入的指令错误 5 电脑端口使用的浏览器拒绝连接 建议先尝试匿名登
  • SPI&CAN通信协议简介

    目录 1 SPI SPI的四种工作模式 CPOL clock polarity 时钟极性 CPHA clock phase 时钟相位 四种工作模式 2 CAN CAN的特点 物理层特征 通讯节点 CAN通信报文 数据帧介绍 远程帧 错误帧
  • Swagger与Knife4j的学习

    Swagger与Knife4j的学习 此教程基于黑马程序员Java品达通用权限项目 哔哩哔哩链接 https www bilibili com video BV1tw411f79E p 30 1 swagger介绍 相信无论是前端还是后端开
  • 【华为OD机试真题 JAVA】连续出牌数量

    JS版 华为OD机试真题 JS 连续出牌数量 标题 连续出牌数量 时间限制 1秒 内存限制 262144K 语言限制 不限 有这么一款单人卡牌游戏 牌面由颜色和数字组成 颜色为红 黄 蓝 绿中的一种 数字为0 9中的一个 游戏开始时玩家从手
  • 第五章 神经网络

    5 1 神经元模型 神经网络是由具有适应性的简单单元组成的广泛并行互连的网络 它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应 神经网络中最基本的成分是神经元模型 5 2感知机与多层网络 感知机由两层神经元组成 多层前馈神经网络
  • Zotero软件中复制文献进入不同文件夹和删除文献的方法

    两种方式 方式1 选中文献 拖动文献至目标文件夹 检索文献 只会出现一篇 按住ctrl 可以看到在两个文件夹中均可以访问这篇文献 经验证 在pdf中的标记 两种文件夹访问时显示是同步的 如果想从一个文件夹中去除该文件 选中 键盘点击dele
  • 微信小程序rich-text富文本 解决图片超出屏幕宽度

    问题 微信小程序rich text富文本 图片超出屏幕宽度 文本数据 更改前效果 解决办法 最终效果 文本数据 更改前效果 解决办法 使用正则将数据中的img标签定义class或者直接写样式 再js文件中将数据进行修改 data conte
  • 数论整理之欧几里得算法gcd

    辗转相除法 使用到的原理很聪明也很简单 假设用f x y 表示x y的最大公约数 取k x y b x y 则x ky b 如果一个数能够同时整除x和y 则必能同时整除b和y 而能够同时整除b和y的数也必能同时整除x和y 即x和y的公约数与
  • 软件需求说明书 概要设计说明书 项目开发计划 详细设计说明书 模版

    一 软件需求说明书 1引言2 1 1编写目的2 1 2背景2 1 3定义2 1 4参考资料2 2任务概述2 2 1目标2 2 2用户的特点3 2 3假定和约束3 3需求规定3 3 1对功能的规定3 3 2对性能的规定3 3 2 1精度3 3
  • 对 React 状态管理的理解及方案对比

    1 React 状态 通信 React 为什么需要状态管理 React 特点 专注 view 层 专注 view 层 的特点决定了它不是一个全能框架 相比 angular 这种全能框架 React 功能较简单 单一 UI render da
  • MongoDB学习笔记番外篇:JDBC方式操作MongoDB示例

    1 pom xml中依赖包设置 在项目中引入MongoDB JDBC 驱动mongo java driver X X X jar