Java操作MongoDB

基本操作:

java 复制代码
        //1. 查看链接的MongoDB中的所有的库
		MongoClient mc=new MongoClient("localhost",27017);
		MongoIterable<String> listDatabaseNames=mc.listDatabaseNames();
		for(String name:listDatabaseNames) {
			System.out.println(name);
		}
		
		//2. 使用库查看库中的集合
		//获取库对象
		MongoDatabase db= mc.getDatabase("小汉堡");
		//获取库中的集合
		MongoIterable<String> collist=db.listCollectionNames();
		for(String li:collist) {
			System.out.println(li);
		}

		//3.获取集合对象
		MongoCollection<Document> coll = db.getCollection("teacher");
		System.out.println(coll);
		
		mc.close();

添加数据

java 复制代码
        MongoDatabase db = mongoClient.getDatabase("小汉堡");
		MongoCollection<Document> coll = db.getCollection("teacher");
		
		Document doc=new Document();
		doc.append("tname", "lili");
		doc.append("tsex", "女");
		doc.append("tbir", new Date());
		doc.append("tage", 40);
		
        //添加一条数据
		coll.insertOne(doc);

		Document doc1 = new Document();
		doc1.append("tname", "ken");
		doc1.append("tsex", "男");
		doc1.append("tbir", "2010-1-1");
		doc1.append("tage", 14);
		
		Document doc2 = new Document();
		doc2.append("tname", "peter");
		doc2.append("tsex", "男");
		doc2.append("tbir", "2000-1-1");
		doc2.append("tage", 24);
		
		List<Document> doclist = new ArrayList<Document>();
        doclist.add(doc1);
        doclist.add(doc2);

        //添加多条数据
		coll.insertMany(doclist);
		
		System.out.println("添加成功");

修改数据

java 复制代码
	    Bson b1 = Filters.eq("stuname", "赵六");
		Document doc = new Document();
		doc.append("$set", new Document("age",61));
		
//      更新一条数据
		UpdateResult updateOne = coll.updateOne(b1, doc);
		long matchedCount = updateOne.getMatchedCount();
		long modifiedCount = updateOne.getModifiedCount();
		
		System.out.println(matchedCount);
		System.out.println(modifiedCount);
java 复制代码
        //过滤多个条件
		Bson b1 = Filters.or(
				Filters.eq("stuname", "赵六"),
				Filters.eq("stuname", "小张"));
		Document doc = new Document();
		
		//$inc 累加
		doc.append("$inc", new Document("age",100));

        //更新多条数据
		UpdateResult updateMany = coll.updateMany(b1, doc);
		//matchedCount 包含匹配文件的数量. modifiedCount 包含修改后的文件数
		long matchedCount = updateMany.getMatchedCount();
		long modifiedCount = updateMany.getModifiedCount();

        System.out.println(matchedCount);
		System.out.println(modifiedCount);

删除数据

java 复制代码
		Document b1=new Document();
		b1.append("tname", "ken");
        //过滤一个条件  
        Bson b1 = Filters.lt("tage", 30);
		
		//删除编号最小的
		DeleteResult deleteOne = coll.deleteOne(b1);
		long deletedCount = deleteOne.getDeletedCount();
		System.out.println(deletedCount);
		
		
java 复制代码
        //过滤多个条件
		Bson b1 = Filters.and(Filters.gt("tage",30),Filters.lt("tage", 80)); 
     
        //同时删除多条数据
		DeleteResult deleteMany = coll.deleteMany(b1);
		long deletedCount = deleteMany.getDeletedCount();
		System.out.println(deletedCount);

查询数据

java 复制代码
		//全查
		FindIterable<Document> find = coll.find();
		
		//条件查询
		Bson b1 = Filters.eq("tname","lili");
		
		//模糊查询
		Bson b1 = Filters.regex("tname", "^k");
		FindIterable<Document> find = coll.find(b1);
	
		//分页查询 查第一页的三条数据
		FindIterable<Document> find = coll.find().skip((1-1)*3).limit(3);
		
		//排序   1:升序  -1:降序
		FindIterable<Document> find = coll.find().sort(new Document("tage",-1));
		for(Document doc:find) {
			System.out.println(doc);
		}
相关推荐
皮皮林5512 小时前
Java性能调优黑科技!1行代码实现毫秒级耗时追踪,效率飙升300%!
java
冰_河2 小时前
QPS从300到3100:我靠一行代码让接口性能暴涨10倍,系统性能原地起飞!!
java·后端·性能优化
桦说编程5 小时前
从 ForkJoinPool 的 Compensate 看并发框架的线程补偿思想
java·后端·源码阅读
躺平大鹅6 小时前
Java面向对象入门(类与对象,新手秒懂)
java
初次攀爬者7 小时前
RocketMQ在Spring Boot上的基础使用
java·spring boot·rocketmq
花花无缺7 小时前
搞懂@Autowired 与@Resuorce
java·spring boot·后端
Derek_Smart9 小时前
从一次 OOM 事故说起:打造生产级的 JVM 健康检查组件
java·jvm·spring boot
NE_STOP10 小时前
MyBatis-mybatis入门与增删改查
java
孟陬13 小时前
国外技术周刊 #1:Paul Graham 重新分享最受欢迎的文章《创作者的品味》、本周被划线最多 YouTube《如何在 19 分钟内学会 AI》、为何我不
java·前端·后端