二十一、MongoDB 实验——java 和 MongoDB
第2关:Java 操作 MongoDB 数据库(二)
任务描述
本关任务:根据编程要求,使用 Java 代码完成文档的检索(查询)、更新与删除。
相关知识
为了完成本关任务,你需要掌握:
1.如何检索文档;
2.如何更新文档;
3.如何删除文档。
注意:本关示例代码接上一关继续介绍。
检索文档
使用驱动 com.mongodb.client.MongoCollection 类中的 find() 方法来获取集合中的所有文档。
此方法返回一个游标,所以你需要遍历这个游标。
//检索所有文档
/**
* 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());
}
更新文档
你可以使用 com.mongodb.client.MongoCollection 类中的 updateMany() 方法来更新集合中的文档:
//更新文档:将第一关例子文档中nums=90的文档修改为nums=100
collection.updateMany(Filters.eq("nums", 90), new Document("$set",new Document("nums",100)));
删除文档
要删除集合中的第一个文档,首先你需要使用 com.mongodb.DBCollection 类中的 findOne() 方法来获取第一个文档,然后使用 remove() 方法删除。
//删除符合条件的第一个文档
collection.deleteOne(Filters.eq("nums", 100));
//删除所有符合条件的文档
collection.deleteMany (Filters.eq("nums", 100));
检索文档
使用驱动 com.mongodb.client.MongoCollection 类中的 find() 方法来获取集合中的所有文档。
此方法返回一个游标,所以你需要遍历这个游标。
//检索所有文档
/**
* 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());
}
更新文档
你可以使用 com.mongodb.client.MongoCollection 类中的 updateMany() 方法来更新集合中的文档:
//更新文档:将第一关例子文档中nums=90的文档修改为nums=100
collection.updateMany(Filters.eq("nums", 90), new Document("$set",new Document("nums",100)));
删除文档
要删除集合中的第一个文档,首先你需要使用 com.mongodb.DBCollection 类中的 findOne() 方法来获取第一个文档,然后使用 remove() 方法删除。
//删除符合条件的第一个文档
collection.deleteOne(Filters.eq("nums", 100));
//删除所有符合条件的文档
collection.deleteMany (Filters.eq("nums", 100));
编程要求
根据提示,在右侧编辑器 Begin-End 中补充代码(请勿删除原有代码框架)。
将以下文档插入 mydb2 数据库的 test2 集合中;
_id name sex age
1 Xiaoming man 21
2 Xiaohong woman 20
3 Xiaoliang man 22
检索 test2 中的所有文档;
更新 Xiaohong 的信息为23岁;
删除 Xiaoliang 的信息。
测试说明
平台会对你编写的代码进行测试,代码各部分功能成功实现会输出相应的的内容,具体请看测试集。
开始你的任务吧,祝你成功!
答案见《头歌实践教学平台:大数据存储2023(二十一下答案)》
有任何问题都可以随时关注私信!