package lesson01;
import com.google.gson.Gson;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import org.bson.Document;
public class demo01_Connect_MongoDB {
public static void main(String[] args) {
CRUD crud = new CRUD();
crud.Find2();
}
static class CRUD {
public MongoCollection<Document> connect() {
// 1.连接到指定的MongoDB数据库,如果不设置host和port,则自动连接localhost:27017
MongoClient client = new MongoClient("localhost",27017);
// 2.连接到指定的数据库
MongoDatabase testDB = client.getDatabase("test");
// 3.获取指定的集合对象
MongoCollection<Document> stuColl = testDB.getCollection("students");
return stuColl;
}
public void Insert() { // 将java中的对象插入
MongoCollection<Document> stuColl = connect();
// 4.创建一个学生对象
Student stu = new Student("猪八戒", 28, "男");
// 5.将stu转换为JSON
Gson gson = new Gson();
String stuJSON = gson.toJson(stu);
// 6.将json转换为document
Document doc = Document.parse(stuJSON);
// 7.将stu对象插入到数据库中
stuColl.insertOne(doc);
}
public void Find() {
MongoCollection<Document> stuColl = connect();
// 4.查询数据库中的文档
Document doc = stuColl.find().first();
Gson gson = new Gson();
Student stu = gson.fromJson(doc.toJson(), Student.class);
System.out.println(stu);
}
public void Find2() {
MongoCollection<Document> stuColl = connect();
// 4.查询数据库中的文档
FindIterable<Document> docs = stuColl.find(Filters.eq("name", "猪八戒"));
for (Document doc : docs) {
System.out.println(doc.toJson());
}
}
public void Remove() {
MongoCollection<Document> stuColl = connect();
stuColl.deleteOne(Filters.eq("name", "猪八戒"));
}
public void updateOne() {
MongoCollection<Document> stuColl = connect();
stuColl.updateOne(Filters.eq("name", "猪八戒"), new Document("$set", new Document("age", 20)));
}
}
static class Student {
String name;
int age;
String gender;
public Student(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
'}';
}
}
}