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);
		}
相关推荐
zhangfeng11333 小时前
openclaw skills 小龙虾技能 通讯仿真 matlab skill Simulink Agentic Toolkit,通过kimi找到,mcp通讯
开发语言·matlab·openclaw·通讯仿真
Javatutouhouduan9 小时前
2026Java面试的正确打开方式!
java·高并发·java面试·java面试题·后端开发·java编程·java八股文
chao1898449 小时前
基于 SPEA2 的多目标优化算法 MATLAB 实现
开发语言·算法·matlab
JAVA面经实录9179 小时前
Java初级最终完整版学习路线图
java·spring·eclipse·maven
赏金术士9 小时前
Kotlin 习题集 · 高级篇
android·开发语言·kotlin
-liming-10 小时前
单片机设计_串口调试工具
数据库·单片机·mongodb
Cat_Rocky10 小时前
k8s-持久化存储,粗浅学习
java·学习·kubernetes
楼兰公子10 小时前
buildroot 在编译rust时裁剪平台类型数量的方法
开发语言·后端·rust
知识领航员11 小时前
蘑兔AI音乐深度实测:功能拆解、实测表现与适用场景
java·c语言·c++·人工智能·python·算法·github
吴声子夜歌11 小时前
Go——并发编程
开发语言·后端·golang