Java链接MongoDB的方法。
一.Java链接MongoDB
1.导入MongoDB驱动包。
2.获取链接对象 MongoClient mc = new MongoClient("localhost", 27017);
3.关闭链接
mongoClient.close();
二.增删改查
1.查看链接的MongoDB中的所有的库
List<String> databaseNames = mc.getDatabaseNames(); for(String s : databaseNames) { System.out.println(s); }
2.使用库查看库中的集合
3.插入数据
3.1插入一条数据
// 获取库对象 MongoDatabase db = mc.getDatabase("myschool"); // 获取表对象 MongoCollection<Document> table = db.getCollection("student"); // 创建一个document对象 Document doc = new Document(); doc.put("sid", s.getSid()); doc.put("sname", s.getSname()); doc.put("birthday", s.getBirthday()); doc.put("ssex", s.getSsex()); doc.put("classid", s.getClassid()); // 插入一条数据 table.insertOne(doc);
3.2插入多条数据
// 获取库对象 MongoDatabase db = mc.getDatabase("myschool"); // 获取表对象 MongoCollection<Document> table = db.getCollection("student"); // 创建一个document对象
Document doc = new Document(); doc.put("sid", s.getSid()); doc.put("sname", s.getSname()); doc.put("birthday", s.getBirthday()); doc.put("ssex", s.getSsex()); doc.put("classid", s.getClassid()); Document doc2 = new Document(); doc2.put("sid", 2); doc2.put("sname", "李四"); doc2.put("birthday", new Date()); doc2.put("ssex", "女"); doc2.put("classid", 200); Document doc3 = new Document(); doc3.put("sid", 3); doc3.put("sname", "王五"); doc3.put("birthday", new Date()); doc3.put("ssex", "男"); doc3.put("classid", 300); List<Document> dlist = new ArrayList<Document>(); dlist.add(doc); dlist.add(doc2); dlist.add(doc3);
// 插入多条数据 table.insertMany(dlist);
4.删除数据
// Mongo操作 // 获取Mongo的链接对象 MongoClient mc = new MongoClient("localhost", 27017); // 获取库对象 MongoDatabase db = mc.getDatabase("myschool"); // 获取表对象 MongoCollection<Document> table = db.getCollection("student"); Bson eq = Filters.eq("sname", "张飞");
// 删除一条数据 // DeleteResult deleteOne = table.deleteOne(eq);
// 删除多条数据 DeleteResult deleteMany = table.deleteMany(eq); System.out.println(deleteMany.getDeletedCount());
if(deleteMany.getDeletedCount() > 0) { System.out.println("删除成功"); }else { System.out.println("删除失败"); } mc.close();
5.修改数据
Filters 该过滤器类为所有的MongoDB的查询操作静态工厂方法。每个方法返回BSON类型,又可以传递给期望一个查询过滤器的任何方法的一个实例。
eq:匹配等于指定值的值。
gt:匹配大于指定值的值。
gte:匹配大于或等于指定值的值。
lt:匹配小于规定值的值。
lte:匹配是小于或等于规定值的值。
ne:匹配不等于指定值的所有值。
in:匹配任何在数组中指定的值。
nin:没有匹配数组中的规定值。
// Mongo操作 // 获取Mongo的链接对象 MongoClient mc = new MongoClient("localhost", 27017); // 获取库对象 MongoDatabase db = mc.getDatabase("myschool"); // 获取表对象 MongoCollection<Document> table = db.getCollection("student"); // 条件对象 where ssex = 男 and (classid = 1 or classid = 2) Bson eq = Filters.and( Filters.eq("ssex", "男"), Filters.or( Filters.eq("classid", 1), Filters.eq("classid", 2) ) );
// 要修改的数据 Document doc = new Document(); doc.put("$set", new Document("sname","张飞"));
// UpdateResult updateOne = table.updateOne(eq, doc); UpdateResult updateMany = table.updateMany(eq, doc); System.out.println(updateMany); mc.close();
6.查询数据
6.1全查
6.2带条件查询
6.3带多个条件查询
6.4模糊查询、
6.5分页查询
6.6排序查询