一、什么是MongoDB?

        MongoDB是一个介于关系数据库和非关系数据库(nosql)之间的产品,是非关系数
据库当中功能最丰富,最像关系数据库的。

二、Java链接MongoDB

        1.导入MongoDB驱动包

                

        2.获取链接对象

    //获取mongo对象
MongoClient mc = new MongoClient("localhost",27017);

         3.结束释放链接

mc.close();

三、Java操作MongoDB

1.查看库,查看集合

        查看MongoDB中的所有库:

//获取链接
MongoClient mc = new MongoClient("localhost",27017);
//获取所有的库
List<String> databaseNames = mc.getDatabaseNames();
    for (String s : databaseNames) {
	    System.out.println(s);
}

        查看库中的所有集合:

// 获取Mongo的链接对象
MongoClient mc = new MongoClient("localhost",27017);
// 获取库对象
MongoDatabase db = mc.getDatabase("myschoolday01");
// 获取表对象
MongoCollection<Document> collection = db.getCollection("student");

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

2.增加数据

        增加一条数据:


public class addStudentDemo {
	public static void main(String[] args) {
		Student s = new Student();
		s.setSid(1);
		s.setSname("艾斯");
		s.setBirthday(new Date());
		s.setSsex("男");
		s.setClassid(1);
		
		MongoClient mc = new MongoClient("localhost",27017);
		//获取库对象
		MongoDatabase db = mc.getDatabase("myschoolday01");
		//获取表对象
		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);
		Document doc2 = new Document();
		//释放资源
		mc.close();
	}

}

        增加多条数据


public class addStudentDemo {
	public static void main(String[] args) {		
		Student s = new Student();
		s.setSid(1);
		s.setSname("艾斯");
		s.setBirthday(new Date());
		s.setSsex("男");
		s.setClassid(1);
		
		MongoClient mc = new MongoClient("localhost",27017);
		//获取库对象
		MongoDatabase db = mc.getDatabase("myschoolday01");
		//获取表对象
		MongoCollection<Document> table = db.getCollection("student");
		
		//创建一个document对象	
		Document doc2 = new Document();
		doc2.put("sid", "2");
		doc2.put("sname", "香克斯");
		doc2.put("birthday", new Date());
		doc2.put("ssex", "男");
		doc2.put("classid", 2);
		Document doc3 = new Document();
		doc3.put("sid", "3");
		doc3.put("sname", "戈尔D罗杰");
		doc3.put("birthday", new Date());
		doc3.put("ssex", "男");
		doc3.put("classid", 2);
		List<Document> dlist = new ArrayList<Document>();
		dlist.add(doc2);
		dlist.add(doc3);
		table.insertMany(dlist);
		//释放资源
		mc.close();
	}
}

3.删除数据

        删除一条  /   删除多条

public class delStudent {
	public static void main(String[] args) {
		MongoClient mc = new MongoClient("localhost",27017);
		MongoDatabase db = mc.getDatabase("myschoolday01");
		MongoCollection<Document> table = db.getCollection("student");
		//删一个
		Bson eq = Filters.eq("sname","戈尔D罗杰");
		DeleteResult deleteOne = table.deleteOne(eq);
		System.out.println(deleteOne);
		System.out.println(deleteOne.getDeletedCount());//个数	
		//删多个
		Bson eq = Filters.eq("age",18);
		DeleteResult deleteMany = table.deleteMany(eq);
		System.out.println(deleteMany);		
		mc.close();
	}
}

4.修改数据

        单条件  /   多条件   /   多条件范围 的修改

public class updateStudent {
	public static void main(String[] args) {		
		MongoClient mc = new MongoClient("localhost",27017);
		MongoDatabase db = mc.getDatabase("myschoolday01");
		MongoCollection<Document> table = db.getCollection("student");		
		//条件对象
		//单条件修改
		Bson eq = Filters.eq("name", "葛二蛋");
		Document doc = new Document();
		doc.put("$set", new Document("birthday",new Date()));
		UpdateResult updateOne = table.updateOne(eq, doc);
		System.out.println(updateOne);
		
		//多条件修改
		Bson eq = Filters.and(Filters.eq("sex","男"),Filters.eq("classid",1));
		Document doc = new Document();
		doc.put("$set", new Document("sname","张三丰"));
		UpdateResult updateMany = table.updateMany(eq, doc);
		System.out.println(updateMany);	
	
		//多条件范围
		Bson eq = Filters.and(Filters.gte("age", 20),Filters.lte("age", 40));
		Document doc = new Document();
		doc.put("$set", new Document("classid",10));
		UpdateResult updateMany = table.updateMany(eq, doc);
		System.out.println(updateMany);
		mc.close();
	}
}

5. 查询数据

        全查     /    单条件查询     /   多条件查询

public class FindStudentDemo {
	public static void main(String[] args) {
		
		// 获取Mongo的链接对象
		MongoClient mc = new MongoClient("localhost", 27017);
		// 获取库对象
		MongoDatabase db = mc.getDatabase("myschoolday01");
		// 获取表对象
		MongoCollection<Document> table = db.getCollection("student");
		
		//全查
		FindIterable<Document> find = table.find();
		//单条件查询
		Bson eq = Filters.eq("name", "小黑");
		FindIterable<Document> find = table.find(eq);
		//多条件查询
		Bson bson = Filters.and(
					Filters.eq("name", "小黑"),
					Filters.eq("sex", "男")
				);
		FindIterable<Document> find = table.find(bson);
		for (Document doc : find) {
			System.out.println(doc);
		}	
	}
}

        模糊查询    /    分页查询    /    排序

public class FindStudentDemo {
	public static void main(String[] args) {
		
		// 获取Mongo的链接对象
		MongoClient mc = new MongoClient("localhost", 27017);
		// 获取库对象
		MongoDatabase db = mc.getDatabase("myschoolday01");
		// 获取表对象
		MongoCollection<Document> table = db.getCollection("student");
		//模糊查询
		Bson regex = Filters.regex("name", "桑");// (开头):^桑 / (结尾):桑$ 
		FindIterable<Document> find = table.find(regex);
		//分页
		FindIterable<Document> find = table.find().limit(3);
		//排序
		Document document = new Document("age",-1);
		FindIterable<Document> find = table.find().sort(document);
		for (Document doc : find) {
			System.out.println(doc);
		}
	}
}

        以上是个人对MongoDB的简单介绍以及java如何连接MongoDB,并且对java语言连接MongoDB如何进行增、删、改、查简单举例说明,希望对大家了解了解MongoDB有所帮助。

Logo

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

更多推荐