头歌实践教学平台:大数据存储2023(二十一上)
2026/9/19 18:51:06 网站建设 项目流程

二十一、MongoDB 实验——java 和 MongoDB


第1关:Java 操作 MongoDB 数据库(一)

任务描述
本关任务:根据编程要求,使用 Java 代码完成 MongoDB 数据库连接、集合的创建、选取和文档插入。

相关知识
为了完成本关任务,你需要掌握:
1.如何连接数据库;
2.如何创建集合;
3.如何获取集合;
4.如何插入文档。

Java 连接数据库
获取 Java 的 Mongodb 驱动包
在 Java 的 MongoDB 驱动包获取网址 下载获取最新版本的驱动包,我已经帮你下载 mongo-java-driver-3.9.1.jar 放在响应环境目录下。

Java 代码连接无密码数据库
通过以下两条代码,进行数据库的连接:

MongoClient mongoClient = new MongoClient("localhost",27020); //启动本地服务,端口号为27020
MongoDatabase mongoDatabase = mongoClient.getDatabase("databaseName"); //连接名为databaseName数据库


编译代码进行数据库连接
此步骤无需操作,平台会完成编译:

javac -cp .:mongo-java-driver-3.9.1.jar Mongoconnect.java
java -cp .:mongo-java-driver-3.9.1.jar Mongoconnect


创建集合
我们可以使用驱动 com.mongodb.client.MongoDatabase 类中的 createCollection() 来创建集合:

mongoDatabase.createCollection("test"); //创建集合test


获取集合
使用驱动 com.mongodb.client.MongoDatabase 类的 getCollection() 方法来获取集合:

MongoCollection<Document> collection = mongoDatabase.getCollection("test"); //获取集合test


插入文档
使用驱动 com.mongodb.client.MongoCollection 类的 insertMany() 方法来插入一个文档:

//注意,在插入文档前,先选好集合再进行操作,选择test集合
MongoCollection<Document> collection = mongoDatabase.getCollection("test");
Document document1 = new Document(); //创建一条文档 document1,以下代码为向文档 document1 中追加数据
document1.append("title", "MongoDB");
document1.append("content", "I love MongoDB").
document1.append("nums", 90).
document1.append("tags", "database");
Document document2 = new Document(); //创建一条文档 document2,以下代码为向文档 document1 中追加数据
document2.append("title", "Java");
document2.append("content", "I love Java").
document2.append("nums", 30).
document2.append("tags", "language");
List<Document> documents = new ArrayList<Document>(); //将以上文档打包存放,为文档插入做准备
documents.add(document1);
documents.add(document2);
collection.insertMany(documents); //插入多条文档到集合中


编程要求
根据提示,在右侧编辑器 Begin-End 中补充代码,将以下文档插入 mydb1 数据库的 test1 集合中。

_id name sex age
1 Xiaoming man 21


测试说明
平台会对你编写的代码进行测试,代码各部分功能成功实现会输出 test1 集合的内容,具体请看测试集。

开始你的任务吧,祝你成功!

答案见《头歌实践教学平台:大数据存储2023(二十一上答案)》

有任何问题都可以随时关注私信!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询