Java操作MongoDB增删改查的基本操作
今天来讲一讲我们如何使用Java来对MongoDB进行增删改查
·
今天来讲一讲我们如何使用Java来对MongoDB进行增删改查
目录
一,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操作
更多推荐
已为社区贡献1条内容
所有评论(0)