Java操作mongodb增删改查的基本操作

目录

前言

一、java链接数据库 

二、查看库、查看集合

三、添加数据

1.添加一条数据

2.添加多条数据

四、删除数据

1.删除一条数据

 2.删除多条数据

五、修改数据

1.修改一条数据

2.修改多条数据 

 六、查询数据

1.模糊查询

 2.分页查询

3.排序 

 七、过滤器


前言

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

一、java链接数据库 

  •  导入MongoDB驱动包

  •      获取链接对象

        MongoClient mc = new MongoClient("localhost", 27017);

这里的 "localhost" 表示连接的服务器地址,27017 为端口号。可以省略 端口号 不写,系统将默认端口号为 27017。

  • 关闭链接

        mc.close(); 

二、查看库、查看集合

// 库对象
MongoDatabase db = mc.getDatabase("myschool");
		
// 集合对象
MongoCollection<Document> collection = db.getCollection("student");

FindIterable<Document> list = collection.find();

//遍历集合	
	for(Document d : list) {
		Student s = DocUtil.DocToObj(d, Student.class);
		System.out.println(s);
	}
		
mc.close();

三、添加数据

1.添加一条数据

 MongoClient mc = new MongoClient("localhost",27017);
		
//库对象
MongoDatabase db = mc.getDatabase("myschool");
		
//集合对象
MongoCollection<Document> collection = db.getCollection("student");
		
//新增
Document document=new Document();
document.put("name", "嘻嘻");
document.put("age", 20);
document.put("hobby", "画画");
document.put("birthday", new Date());
//添加一条数据
collection.insertOne(document);
mc.close();

2.添加多条数据

MongoClient mc = new MongoClient("localhost",27017);
		
//库对象
MongoDatabase db = mc.getDatabase("myschool");

//集合对象
MongoCollection<Document> collection = db.getCollection("student");


Document document=new Document();
document.put("name", "伤心");
document.put("age", 20);
document.put("hobby", "画画");
document.put("birthday", new Date());

Document document1=new Document();
document1.put("name", "开心");
document1.put("age", 20);
document1.put("hobby", "吃饭");
document1.put("birthday", new Date());

List<Document> list=new ArrayList<>();	
list.add(document);
list.add(document1);
//添加多条数据
collection.insertMany(list);	
mc.close();

四、删除数据

1.删除一条数据

MongoClient mc=new MongoClient("localhost",27017);
MongoDatabase db = mc.getDatabase("myschool");
MongoCollection<Document> collection = db.getCollection("student");
	
//删除一个
Bson eq = Filters.eq("name","张三三");
DeleteResult deleteOne = collection.deleteOne(eq);
mc.close();

 2.删除多条数据

MongoClient mc=new MongoClient("localhost",27017);
MongoDatabase db = mc.getDatabase("myschool");
MongoCollection<Document> collection = db.getCollection("student");

//删除所有匹配到的
//删除没有年龄的学生 false为不存在  ,默认为true
Bson exists = Filters.exists("age", false);
DeleteResult deleteMany = collection.deleteMany(exists);
System.out.println(deleteMany);
mc.close();

五、修改数据

1.修改一条数据

		MongoClient mc=new MongoClient("localhost",27017);
		MongoDatabase db = mc.getDatabase("myschool");
		MongoCollection<Document> collection = db.getCollection("student");
		
		Bson eq = Filters.eq("name", "张三");
		UpdateResult updateOne = collection.updateOne(eq, 
				new Document("$set",new Document("age",30)));	
	
		//如果没有匹配到,就新增进去,输出的时候有id信息
		Bson eq1 = Filters.eq("name", "张三三");
		UpdateResult updateOne = collection.updateOne(eq1, 
		new Document("$set",new Document("age",30)),
		new UpdateOptions().upsert(true));

2.修改多条数据 

UpdateResult updateMany = collection.updateMany(eq, new Document("$set",new Document("age",30)));
		//修改所有匹配到的
		System.out.println(updateMany);
		
		Bson gt1 = Filters.gt("age", 20);
		Bson gt2 = Filters.lt("age", 30);
		Bson and = Filters.and(gt1,gt2);
		
UpdateResult updateMany =collection.updateMany(and,newDocument("$set",newDocument("sex","保密")));		
System.out.println(updateMany);	
		
mc.close();

 六、查询数据

        Gson gson = new GsonBuilder().create();
		MongoClient mc=new MongoClient("localhost",27017);
		MongoDatabase db = mc.getDatabase("myschool");
		MongoCollection<Document> collection = db.getCollection("student");
		
		FindIterable<Document> find = collection.find();
		List<Student> list=new ArrayList<>();
		for(Document doc:find) {
			System.out.println(doc);
		}
		
		Iterator<Document> iterator = find.iterator();
		while(iterator.hasNext()) {
			Student s=new Student();
			Document next = iterator.next();
			String json = next.toJson();
			s.setAge(age);
		}
		
		mc.close();

1.模糊查询

		//模糊查询
		Bson regex = Filters.regex("name", "李");
		FindIterable<Document> find2 = collection.find(regex);
		for(Document doc:find2) {
			System.out.println(doc);
		}

 2.分页查询

		//分页查询
		FindIterable<Document> find = collection.find().skip(2).limit(2);
		List<Student> list=new ArrayList<>();
		for(Document doc:find) {
			System.out.println(doc);
		}

3.排序 

        //排序
		Document document = new Document("age",-1);
		FindIterable<Document> find1= collection.find().sort(document);
		List<Student> list1=new ArrayList<>();
		for(Document doc:find) {
			System.out.println(doc);
		}

 七、过滤器


该过滤器类为所有的MongoDB的查询操作静态工厂方法。每个方法返回BSON类型,又可以传递给期
望一个查询过滤器的任何方法的一个实例。
eq: :匹配等于指定值的值。
gt: :匹配大于指定值的值。
gte: :匹配大于或等于指定值的值。
lt: :匹配小于规定值的值。
lte: :匹配是小于或等于规定值的值。
ne: :匹配不等于指定值的所有值。
in: :匹配任何在数组中指定的值。
nin: :没有匹配数组中的规定值。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值