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);
		}
相关推荐
傻乐u兔1 小时前
C语言进阶————指针4
c语言·开发语言
大模型玩家七七1 小时前
基于语义切分 vs 基于结构切分的实际差异
java·开发语言·数据库·安全·batch
历程里程碑1 小时前
Linux22 文件系统
linux·运维·c语言·开发语言·数据结构·c++·算法
牛奔2 小时前
Go 如何避免频繁抢占?
开发语言·后端·golang
寻星探路6 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
lly2024067 小时前
Bootstrap 警告框
开发语言
2601_949146538 小时前
C语言语音通知接口接入教程:如何使用C语言直接调用语音预警API
c语言·开发语言
曹牧8 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
KYGALYX8 小时前
服务异步通信
开发语言·后端·微服务·ruby