创建一个项目导入jar包
引入坐标
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.8.0</version>
</dependency>
链接数据库
/**
* 连接数据库
*/
@Test
public void test1(){
//尝试连接mongodb数据库,如果不报异常就代表连接成功
//创建连接,如果用的本地路径和默认端口则可以直接new MongoClient();
MongoClient client = new MongoClient("localhost",27017);
//获得一个库
MongoDatabase mr = client.getDatabase("xbb");
System.out.println("连接成功");
//用完记得关闭连接,释放资源
client.close();
}
向mongodb中添加一条数据
/**
* 添加一条数据
*/
@Test
public void test2(){
//创建连接
MongoClient client = new MongoClient("localhost",27017);
//获得一个库
MongoDatabase mr = client.getDatabase("xbb");
//获得一个指定的集合
MongoCollection<Document> xbb = mr.getCollection("xbb");
//创建一个文档
Document c1 = new Document();
//在文档中添加内容
c1.append("name","王苏南");
c1.append("age",44);
//添加一个文档到集合中
xbb.insertOne(c1);
//关闭连接,释放资源
client.close();
}
查看结果
添加多条数据
/**
* 添加多条数据
*/
@Test
public void test3(){
//创建连接
MongoClient client = new MongoClient("localhost",27017);
//获得一个库
MongoDatabase mr = client.getDatabase("xbb");
//获得库中的一个集合
MongoCollection<Document> xbb = mr.getCollection("xbb");
//创建文档
Document c1 = new Document();
c1.append("name","dfh");
c1.append("money",12);
Document c2 = new Document();
c2.append("name","hjl");
c2.append("money",55);
Document c3 = new Document();
c3.append("name","tto");
c3.append("money",97);
//将多条文档添加到list中
List<Document> cs = Arrays.asList(c1, c2, c3);
//将多条数据添加到集合中
xbb.insertMany(cs);
//关闭连接,释放资源
client.close();
}
查看结果
查询集合中的所有文档
/**
* 查询集合中的所有文档
*/
@Test
public void test4(){
//创建连接
MongoClient client = new MongoClient("localhost",27017);
//获得一个库
MongoDatabase mr = client.getDatabase("xbb");
//获得库中的一个集合
MongoCollection<Document> xbb = mr.getCollection("xbb");
//查询所有文档
FindIterable<Document> xs = xbb.find();
//遍历所有文档
for(Document x : xs){
System.out.println(x.get("id")+"--"+x.get("name")+"--"+x.get("age"));
}
//关闭连接,释放资源
client.close();
}
查看结果
分页查询
/**
* 分页查询
*/
@Test
public void test5(){
//查询页数
int page = 1;
//每页条数
int rows = 5;
//创建连接
MongoClient client = new MongoClient("localhost",27017);
//获得一个库
MongoDatabase mr = client.getDatabase("xbb");
//获得一个指定的集合
MongoCollection<Document> xbb = mr.getCollection("xbb");
//分页查询文档
FindIterable<Document> xs = xbb.find().skip((page - 1) * rows).limit(rows);
//遍历所有文档
for (Document x : xs) {
System.out.println(x.get("id")+"--"+x.get("name")+"--"+x.get("age"));
}
//关闭连接,释放资源
client.close();
}
查看结果
单一条件查询符合的文档
/**
* 单一条件查询符合的文档
*/
@Test
public void test6(){
//创建连接
MongoClient client = new MongoClient("localhost",27017);
//获得一个库
MongoDatabase mr = client.getDatabase("xbb");
//获得一个指定的集合
MongoCollection<Document> xbb = mr.getCollection("xbb");
//查询所有符合条件的文档(后面的是一个单独的条件)
FindIterable<Document> xs = xbb.find(Filters.eq("name", "tto"));
for (Document x : xs) {
System.out.println(x.get("id")+"--"+x.get("name")+"--"+x.get("money"));
}
//关闭连接
client.close();
}
查看结果
多条件查询符合的文档
/**
* 多条件查询符合的文档
*/
@Test
public void test7(){
//创建连接
MongoClient client = new MongoClient("localhost",27017);
//获得一个库
MongoDatabase mr = client.getDatabase("xbb");
//获得指定的一个集合
MongoCollection<Document> xbb = mr.getCollection("xbb");
//创建复合条件,where name = "tto" and money < 19
Bson where = Filters.and(Filters.eq("name", "tto"), Filters.lt("money", 100));
//查询所有符合条件的文档
FindIterable<Document> xs = xbb.find(where);
//遍历所有文档
for (Document x : xs) {
System.out.println(x.get("name")+"--"+x.get("money"));
}
//关闭连接
client.close();
}
查看结果
修改符合条件的文档
/**
* 修改符合条件的文档
*/
@Test
public void test8(){
//创建连接
MongoClient client = new MongoClient("localhost",27017);
//获得一个库
MongoDatabase mr = client.getDatabase("xbb");
//获得一个指定的集合
MongoCollection<Document> xbb = mr.getCollection("xbb");
//修改符合条件的第一条数据
xbb.updateOne(Filters.eq("name", "tto"), new Document("$set", new Document("money", 1)));
//修改复合条件的所有数据
xbb.updateMany(Filters.eq("name","cvb"),new Document("$set",new Document("age","666")));
//关闭连接,释放资源
client.close();
}
删除符合条件的文档
/**
* 删除符合条件的文档
*/
@Test
public void test9(){
//创建连接
MongoClient client = new MongoClient("localhost",27017);
//获得一个库
MongoDatabase mr = client.getDatabase("xbb");
//获得一个指定的集合
MongoCollection<Document> xbb = mr.getCollection("xbb");
//删除符合条件的第一条数据
xbb.deleteOne(Filters.eq("name","tto"));
//删除符合条件的所有数据
xbb.deleteMany(Filters.eq("name","cvb"));
//关闭连接,释放资源
client.close();
}