今天来讲一讲我们如何使用Java来对MongoDB进行增删改查

目录

一,Java链接MongoDB 

导入MongoDB驱动包 

获取链接对象 

关闭链接 

二,Java操作MongoDB 

查看库,查看集合

1.查看链接的MongoDB中的所有的库

2.使用库查看库中的集合

添加数据

1.插入一条数据

2.插入多条数据 

删除数据

1.删除一条数据

2.删除多条数据

修改数据

Filters

1.修改一条数据

2.修改多条数据

3.多条件修改数据 

查询数据

1.全查

2.带条件查询

3.带多个条件查询

4.模糊查询

5.分页查询

6.排序查询

总结


一,Java链接MongoDB 

导入MongoDB驱动包 

        在操作前,我们需要导入MongoDB的驱动包,如下图:

获取链接对象 

         接下来我们需要获取链接对象:

MongoClient mongoClient = new MongoClient("localhost",27017);

         我们看到这里需要填入两个参数,第一个是地址,这里我们用本地主机做演示,所以填"localhost"即可,第二个参数则是端口号,这里MongoDB默认的端口号为 27017 ,倘若后期有需求我们也可以依据需求进行更改。

关闭链接 

        就像我们之前使用mybatis一样,我们需要在最后将资源关闭

mongoClient.close();

二,Java操作MongoDB 

查看库,查看集合

        在MongoDB中的集合我们可以将其近似理解为MySQL中的表,这种类似的概念如下:

1.查看链接的MongoDB中的所有的库

MongoIterable<String> dblist = mongoClient.listDatabaseName();

for(String db : dbslist){
    System.out.println(db);
}

2.使用库查看库中的集合

MongoDatabase bbsDB = mongoClient.getDatabase("bbs");

MongoIterable<String> collist = bbsDB.listCollectionNames();

for(String s : collist) {
    System.out.println(s);
}

添加数据

1.插入一条数据

//存入MongoDB的数据
Comment com = new Comment();
com.setContent("专家说空腹不宜吃早餐");
com. setPublishtime (new Date());

//将数据转换为json格式
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
String json = gson.toJson(com);

//获取集合对象
MongoCollection<Document> commCol = bbsDB.getCollection("comment");

//添加一条数据--将json格式转换为decument对象
commCol.insertOne(Document.parse(json));

2.插入多条数据 

//存入MongoDB的数据
List<Document> dlist = new ArrayList<Document>();

//需要的数据
for(int i =; i < 5; i++){
    Comment com = new Comment();
    com. setId(Integer.toString(i+1));
    com. setContent("专家说空腹不宜吃早餐");com.setPublishtime (new Date());

    //将数据转换为json格式
    Gson gson = new GsonBuilder().setDateFormat("yyyy-M-dd HH:mm:ss").create();
    String json = gson.toJson(com);
    dlist.add(Document.parse(json));
}

//获取集合对象
MongoCollection<Document> commCol = bbsDB.getCollection(" comment");

//添加多条数据
commCol.insertMany(dlist);

删除数据

1.删除一条数据

//删除数据
MongoCollection<Document> commCol = bbsDB.getCollection("comment");

Comment com = new Comment();
com.setId("1");

Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();

Bson bson = Document.parse(gson.to]son(com));

DeleteResult deleteOne = commCol.deleteOne (bson);

if(deleteOne.getDeletedCount() > 0){
    System.out.println("删除成功");
}else {
    system.out. println("删除失败");
}

2.删除多条数据

//删除数据
MongoCollection<Document> commCol =bbsDB.getCollection("comment");

Comment com = new Comment();
com. setContent("专家说空腹不宜吃早餐");

Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();

Bson bson = Document.parse(gson.toJson(com));

DeleteResult deleteMany = commCol.deleteMany(bson);

if(deleteMany·getDeletedCount() > 0){
    System.out.println("删除成功");
}else {
    System.out.println("删除失败");
}

修改数据

Filters

        Filters 过滤器类 为所有的MongoDB的查询操作静态工厂方法。每个方法返回BSON类型,又可以传递给期望一个查询过滤器的任何方法的一个实例。

eq:匹配等于指定值的值。

gt:匹配大于指定值的值。
gte:匹配大于或等于指定值的值。

lt:匹配小于规定值的值。
lte:匹配是小于或等于规定值的值。

ne: 匹配不等于指定值的所有值。

in:匹配任何在数组中指定的值。

nin:没有匹配数组中的规定值。

1.修改一条数据

Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();

//修改数据
MongoCollection<Document> commCol = bbsDB.getCollection("comment");

//条件
Bson b1 =Filters.eq( "content","专家说空腹不宜吃早餐");
System.out.println(b1);

//修改的内容
Comment comup = new Comment();
comup. setLikenum(1);
Bson b2 = newDocument("$inc", Document.parse(gson.toJson(comup)));
system.out.println(b2);

//修改一条数据
UpdateResult updateMany =commCol.updateone(b1, b2);

System.out.println(updateMany);

if(updateMany.getModifiedCount() > 0){
    System.out.println("修改成功");
}else {
    System.out.println("修改失败");
}

mongoClient.close();

2.修改多条数据

Gson gson = new GsonBuilder().setDateFormat("yyyy-MA-dd HH:mm:ss").create();

//修改数据
MongoCollection<Document> commCol = bbsDB.getCollection("comment");

//条件
Bson b1 =Filters.eq("content", "专家说空腹不宜吃早餐");
System.out.println(b1);

//修改的内容
Comment comup = new Comment();
comup. setLikenum(1);
Bson b2 = new Document("$inc", Document.parse(gson.toJson(comup)));
system.out.println(b2);

//修改多条数据
UpdateResult updateMany = commCol.updateMany(b1, b2);
System.out.println(updateMany);

if(updateMany.getModifiedCount() > 0){
    System.out.println("修改成功");
}else {
    system.out.println("修改失败");
}

mongoClient.close();

3.多条件修改数据 

Gson gson = new GsonBuilder().setDateFormat( "yyyy-MM-dd HH:mm:ss").create();

//修改数据
MongoCollection<Document> commCol = bbsDB.getCollection("comment");

//条件
Bson b1 = Filters.and(
            Filters.eq( "content", "专家说空腹不宜吃早餐"),
            Filters.Lte( "likenum", 5)
            );
System.out.println(b1);

//修改的内容
Comment comup = new Comment();
comup.setLikenum(1);
Bson b2 = new Document("$inc",Document.parse(gson.toJson(comup)));
System.out.println(b2);

//修改多条数据
UpdateResult updateMany = commcol.updateMany(b1, b2);
system.out.println(updateMany);

if(updateMany.getModifiedCount() > 0) {
    system.out.print1n("修改成功");
}else {
    system.out.println("修改失败");
}

mongoClient.close();

查询数据

1.全查

MongoCollection<Document> commCol = bbsDB.getcollection("comment");
FindIterable<Document> bbses = commCol.find();
MongoCursor<Document> iterator = bbses.iterator();

while(iterator.hasNext()) {
    System.out.println(iterator.next());
}

mongoClient.close();

2.带条件查询

Mongocollection<Document> commCol = bbsDB.getCollection("comment");
Bson b1 = Filters.eq("content", "专家说空腹不宜吃早餐");
FindIterable<Document> bbses = commcol.find(b1);
MongoCursor<Document> iterator = bbses.iterator();

while(iterator.hasNext()) {
    system.out.print1n(iterator.next());
}

mongoClient.close();

3.带多个条件查询

MongoCollection<Document> commCol = bbsDB.getcollection("comment");

Bson b1 = Filters.and(
            Filters.eq("content", "专家说空腹不宜吃早餐"),
            Filters.gte("likenum", 7)
          );

FindIterable<Document> bbses = commCol.find(b1);

MongoCursor<Document> iterator = bbses.iterator();

while(iterator.hasNext()) {
    system.out. println(iterator.next());
}

mongoClient.close();

4.模糊查询

Mongocollection<Document> commCol = bbsDB.getCollection("comment");

//使用正则表达式进行模糊查找
Bson b1 = Filters.regex("content", "不能");

FindIterable<Document> bbses = commCol.find(b1);

MongoCursor<Document> iterator = bbses.iterator();

while(iterator.hasNext()) {
    System.out.println(iterator.next());
}

mongoClient.close();

5.分页查询

Mongocollection<Document> commCol = bbsDB.getCollection("comment");

//分页查询
FindIterable<Document> bbses = commCol.find().skip(2).limit(3);

MongoCursor<Document> iterator = bbses.iterator();

while(iterator.hasNext()) {
    System. out.print1n(iterator.next());
}

mongoClient.close();

6.排序查询

MongoCollectionKDocument> commcol = bbsDB.getCollection("comment");

//排序1表示升序-1表示降序
Bson b1 = new Document("id", -1);
FindIterable<Document> bbses = commCol.find().sort(b1);
MongoCursor<Document> iterator = bbses.iterator();

while(iterator.hasNext()){
    System.out. println(iterator.next());
}

mongoClient.close();

总结

到这里,java对mongoDB的一些基本操作就介绍完了。实现的步骤为:

        添加驱动==>连接到服务==>连接到数据库==>选择集合==>对集合进行CRUD操作 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐