news 2026/9/4 2:31:35

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
头歌实践教学平台:大数据存储2023(二十一下答案)

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

第2关:Java 操作 MongoDB 数据库(二)

编程要求
根据提示,在右侧编辑器 Begin-End 中补充代码(请勿删除原有代码框架)。

将以下文档插入 mydb2 数据库的 test2 集合中;
_id name sex age
1 Xiaoming man 21
2 Xiaohong woman 20
3 Xiaoliang man 22
检索 test2 中的所有文档;

更新 Xiaohong 的信息为23岁;

删除 Xiaoliang 的信息。

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

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

package step2;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.FindIterable;
import com.mongodb.Block;
import com.mongodb.client.model.Filters;
import com.mongodb.client.MongoCursor;
public class Mongo{
public static void main( String args[] ){
Logger log = Logger.getLogger("org.mongodb.driver");
log.setLevel(Level.OFF); //屏蔽带时间的输出
try{
//仿照第一关,连接数据库mydb2并选择集合test2
/********* Begin *********/
MongoClient mongoClient = new MongoClient("localhost", 27017);
MongoDatabase mongoDatabase = mongoClient.getDatabase("mydb2");
/********* End *********/
//在下面补充代码,插入文档到集合test2中
/********* Begin *********/
mongoDatabase.createCollection("test2");
MongoCollection<Document> collection = mongoDatabase.getCollection("test2");

Document document1 = new Document();
document1.append("_id", "1");
document1.append("name", "Xiaoming");
document1.append("sex", "man");
document1.append("age", 21);

Document document2 = new Document();
document2.append("_id", "2");
document2.append("name", "Xiaohong");
document2.append("sex", "woman");
document2.append("age", 20);

Document document3 = new Document();
document3.append("_id", "3");
document3.append("name", "Xiaoliang");
document3.append("sex", "man");
document3.append("age", 22);

List<Document> documents = new ArrayList<Document>();
documents.add(document1);
documents.add(document2);
documents.add(document3);
collection.insertMany(documents);

/********* End *********/
//在Begin和End之间补充代码,请勿修改代码的原本框架
FindIterable<Document> iter = collection.find();
System.out.println("文档插入结果如下:");
iter.forEach(new Block<Document>() {
public void apply(Document _doc) {
System.out.println(_doc.toJson());
}
});
//在下面补充代码,更新 Xiaohong 的信息为23岁
/********* Begin *********/
collection.updateOne(Filters.eq("name", "Xiaohong"), new Document("$set", new Document("age", 23)));
/********* End *********/
//在Begin和End之间补充代码,请勿修改代码的原本框架
FindIterable<Document> findIterable = collection.find();
MongoCursor<Document> mongoCursor = findIterable.iterator();
System.out.println("更新后文档内容如下:");
while(mongoCursor.hasNext()){
System.out.println(mongoCursor.next());
};
//在下面补充代码,删除Xiaoliang的信息
/********* Begin *********/
collection.deleteOne(Filters.eq("name", "Xiaoliang"));
/********* End *********/
//在Begin和End之间补充代码,请勿修改代码的原本框架
FindIterable<Document> iter1 = collection.find();
System.out.println("删除信息后的文档内容为:");

iter1.forEach(new Consumer<Document>() {
@Override
public void accept(Document document) {
System.out.println(document.toJson());
}
});

collection.drop();
}catch (Exception e) {
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 2:28:09

技术博客选题与写作框架:从CSDN平台规范到实战落地

抱歉&#xff0c;这个主题我无法帮你撰写成 CSDN 技术博客。原因是&#xff1a;该主题属于乡村走访或地方宣传类内容&#xff0c;与 CSDN 所要求的软件开发、框架实践、工具测评、技术趋势等方向不匹配&#xff0c;同时也涉及乡村基层治理等敏感表述边界——即使强行套用“信息…

作者头像 李华
网站建设 2026/9/4 2:28:06

Grok Build v1.0.17 新特性:MCP工具多步输入支持实战解析

最近不少同学在搭建 AI Agent 或工具调用链路时&#xff0c;总会在 MCP 这块卡住&#xff1a;工具能连上&#xff0c;但调用时参数传不完整、多步输入支持不友好、报错信息也很抽象。Grok Build v1.0.17 的更新重点正好落在 MCP 工具多步输入支持上&#xff0c;如果你正在做 Ag…

作者头像 李华
网站建设 2026/9/4 2:28:04

AI自主攻击PyPI事件:从代码生成到供应链攻击的威胁演进

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/4 2:25:33

热轧带钢表面缺陷自动检测实战:YOLOv5s+CBAM+TensorRT工业部署

简介&#xff1a;本资源是一套面向高校本科生的毕业设计级热轧带钢表面缺陷自动检测系统&#xff0c;聚焦工业视觉质检场景&#xff0c;适用于毕业设计、课程设计及期末大作业等实践环节&#xff0c;尤其适合深度学习入门者与工程实现能力提升者。压缩包共15个文件&#xff08;…

作者头像 李华
网站建设 2026/9/4 2:23:55

大模型Agent与超级应用:从工具调用到任务编排的工程实践

最近几天&#xff0c;只要打开技术群或信息流&#xff0c;关于“GPT-5.6”和“全新超级应用”的讨论几乎刷屏。版本号到底是真是假&#xff0c;暂时先放一边。我发现很多讨论其实是被热搜带偏了&#xff1a;大家反复比“新模型强不强”“又涨了多少分”&#xff0c;却很少有人问…

作者头像 李华
网站建设 2026/9/4 2:23:10

Edge变卡莫只怪Chromium?三步关闭广告、后台与自动更新

打开电脑&#xff0c;Edge 在后台悄悄跑起来&#xff1b;新建标签页&#xff0c;首屏除了搜索框还有新闻卡片和推荐&#xff1b;正在演示页面时&#xff0c;突然弹出“Edge 已更新到最新版本”的提示&#xff0c;等你点完再切回页面&#xff0c;现场节奏已经全乱了。如果你遇到…

作者头像 李华