1. 编写前测试
idea java连接MongoDB——测试_连胜是我偶像的博客-CSDN博客
2. 总代码
通过对main函数里面的方法的注释,来达到测试目的
package com.company;
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;
import org.bson.Document;
import org.bson.conversions.Bson;
import java.util.ArrayList;
import java.util.logging.Filter;
public class Main {
public static void main(String[] args) {
//连接mongodb服务,连接到默认localhost服务器,端口号为27017
MongoClient mongoClient = new MongoClient();
//连接到数据库
MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
//获取学生集合。我在mongodb test数据库中的集合名称为 stu
MongoCollection<Document> stu = mongoDatabase.getCollection("stu");
// //插入一条文档
// createOneDoc(mongoDatabase);
// //插入多条文档
// createManyDoc(mongoDatabase);
// //删除一条文档
// deleteOneDoc(mongoDatabase);
// //删除多条文档
// deleteManyDoc(mongoDatabase);
// //按条件查找文档
// findDocByRequirement(mongoDatabase);
// //修改文档
// updateDoc(mongoDatabase);
// //打印stu的所有数据
// outputAll(stu);
}//main
/**
* 修改文档 :局部修改
* @param mongoDatabase 数据库
*/
private static void updateDoc(MongoDatabase mongoDatabase) {
//获取集合stu
MongoCollection<Document> stu = mongoDatabase.getCollection("stu");
//名字条件:获取条件 eq:等于
Bson nameFilter = Filters.eq("name", "戚杏");
Document age = new Document("age", 26.0);
Document update = new Document("$set", age);
//前两条可合并
//Document document = new Document("$set", new Document("age", "26"));
//前面是条件 后面是修改
stu.updateOne(nameFilter,update);
}
/**
* 删除所有满足条件的文档
* @param mongoDatabase 数据库
*/
private static void deleteManyDoc(MongoDatabase mongoDatabase) {
//获取集合stu
MongoCollection<Document> stu = mongoDatabase.getCollection("stu");
//获取删除的条件 eq:等于
Bson nameFilter = Filters.eq("name", "戚杏");
//调用deleteMany方法 删除所有
stu.deleteMany(nameFilter);
System.out.println("delete all ok");
}
/**
* 删除一条文档
* @param mongoDatabase 数据库
*/
private static void deleteOneDoc(MongoDatabase mongoDatabase) {
//获取集合stu
MongoCollection<Document> stu = mongoDatabase.getCollection("stu");
//获取删除的条件 eq:等于
Bson nameFilter = Filters.eq("name", "宋问");
//调用方法
stu.deleteOne(nameFilter);
System.out.println("delete ok");
}
/**
* 插入多条文档
* @param mongoDatabase 数据库
*/
private static void createManyDoc(MongoDatabase mongoDatabase) {
//获取集合stu
MongoCollection<Document> stu = mongoDatabase.getCollection("stu");
//获取需要增加的文档信息
Document document1 = new Document("name", "戚杏")
.append("age","17.0")
.append("isgirl","true")
.append("addr","广州市海珠区");
Document document2 = new Document("name", "宋问")
.append("age","23.0")
.append("isgirl","true")
.append("addr","广州市白云区");
//把两个文档信息合并
ArrayList<Document> documents = new ArrayList<>();
documents.add(document1);
documents.add(document2);
//调用方法
stu.insertMany(documents);
System.out.println("ok");
}
/**
* 插入一条数据
* @param mongoDatabase 数据库
*/
private static void createOneDoc(MongoDatabase mongoDatabase) {
//获取集合stu
MongoCollection<Document> stu = mongoDatabase.getCollection("stu");
Document document = new Document("name", "戚杏")
.append("age","20.0")
.append("isgirl","true")
.append("addr","广州市海珠区");
//调用insertOne方法
stu.insertOne(document);
System.out.println("Successfully inserted a piece of data");
}
/**
* 按条件查找
* @param mongoDatabase 数据库
*/
private static void findDocByRequirement(MongoDatabase mongoDatabase) {
//获取集合stu
MongoCollection<Document> stu = mongoDatabase.getCollection("stu");
//名字条件:获取条件 eq:等于
Bson nameFilter = Filters.eq("name", "连胜");
//获取数据
FindIterable<Document> nameDocument = stu.find(nameFilter);
//打印
System.out.println("name=连胜 :");
outputDocument(nameDocument);
//年龄条件:获取条件 lt:小于
Bson ageFilter = Filters.lt("age", 18);
FindIterable<Document> ageDocument = stu.find(ageFilter);
//打印
System.out.println("age<18 :");
outputDocument(ageDocument);
}
/**
* 打印 通过find()获取的数据
* @param documents find()获取的数据集
*/
private static void outputDocument(FindIterable<Document> documents) {
for (Document document : documents){
System.out.println(document);
}
}
/**
* 打印集合stu的所有信息
* @param stu 集合stu
*/
private static void outputAll(MongoCollection<Document> stu) {
//调用集合中的find()方法,查看文档
FindIterable<Document> documents = stu.find();
//遍历documents
MongoCursor<Document> iterator = documents.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}//while
}
}
|