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

目录

前言

一、连接mongodb

二、操作mongodb

        1.创建javabean

        2.新增 

         3.删除   

        4.修改

        5.查询

结尾


前言

        本文主要内容是java操作mongodb增删改查的基本操作

一、连接mongodb

        1.安装驱动包
            http://mongodb.github.io/mongo-java-driver/
        2.连接数据库
            将我们的mgngodb的jar包导入到我们的项目中,就可以使用java对mongodb进行操作。

二、操作mongodb

        1.创建javabean

package com.com.bean;

public class Student {	
	private String name;
	private int age;
	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Student(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	@Override
	public String toString() {
		return "Student [name=" + name + ", age=" + age + "]";
	}	
}	

        2.新增 

package com.db.lx;

import java.util.ArrayList;
import java.util.List;

import org.bson.Document;

import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;

public class adddemo {
	public static void main(String[] args) {
		//获取对象
		MongoClient mongoClient = new MongoClient("localhost",27017);
		
		//建库
		MongoDatabase database = mongoClient.getDatabase("myschool");
		
		//建表
		MongoCollection<Document> collection = database.getCollection("student");
		
		//创建文档
		Document document = new Document();
		document.append("name", "张三");
		document.append("age", 18);
		Document document2 = new Document();
		document2.append("name", "李四");
		document2.append("age", 19);
		Document document3 = new Document();
		document3.append("name", "王五");
		document3.append("age", 20);
			
		//添加一条数据
		//collection.insertOne(document);
		
		List<Document> doclist = new ArrayList<Document>();
		doclist.add(document);
		doclist.add(document2);
		doclist.add(document3);
		//添加多条数据
		collection.insertMany(doclist);
		//释放资源
		mongoClient.close();
	}
}

        注意:这里的mongodb中的建立集合,如果库里面没有student这个集合,那么mongodb就会自动帮我们创建这个集合,但是集合创建完毕,里面是没有数据的,所以我们在mongodb里是看不到我们这个student的学生集合。 

        其中insertOne()方法,是添加一条数据,而insertMany()是添加多条数据。

         3.删除   

package com.db.lx;

import org.bson.Document;

import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.result.DeleteResult;

public class deldemo {
	public static void main(String[] args) {
		//获取连接
		MongoClient mongoClient = new MongoClient("localhost",27017);

		//建库
		MongoDatabase database = mongoClient.getDatabase("myschool");

		//建表
		MongoCollection<Document> collection = database.getCollection("student");

		Document document = new Document();
		document.append("name", "张三");
		
		//mongo会删除所有符合条件的数据
		//java操作的mongo删除遇到的第一个
		DeleteResult deleteOne = collection.deleteOne(document);
		
		//删除所有符合条件的数据
		//DeleteResult deleteMany = collection.deleteMany(document);
		
		//释放资源
		mongoClient.close();
	}
}

        其中:deleteOne()方法是删除遇到符合条件的第一条数据,而deleteMany()方法是删除所有符合条件的数据。

        4.修改

        

package com.db.lx;

import org.bson.Document;
import org.bson.conversions.Bson;

import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.UpdateOptions;
import com.mongodb.client.result.UpdateResult;

public class updatedemo {
	public static void main(String[] args) {
		//获取对象
		MongoClient mongoClient = new MongoClient("localhost",27017);

		//建库
		MongoDatabase database = mongoClient.getDatabase("myschool");

		//建表
		MongoCollection<Document> collection = database.getCollection("student");
			
		Bson eq = Filters.eq("name", "李四");
		
		Document document = new Document();
		document.append("$set", new Document("age",9));
		Bson and = Filters.and(Filters.gte("age", 20),Filters.lte("age", 30));
		//修改一条数据
		//UpdateResult updateOne = collection.updateOne(eq, document);
		
		//修改多条数据
		UpdateResult updateMany = collection.updateMany(and, new Document("$inc",new Document("age",100)));
		
		//多条件的修改
		//UpdateResult updateOne = collection.updateOne(eq, new Document("$set",new Document("age", 22)),new UpdateOptions().upsert(true));
				
		mongoClient.close();
	}
}

        其中updateOne()方法修改一条数据,updateMany()方法是修改多条符合条件的数据。

        其中修改的语法:db.sutdent.update({key:value},{$set:{key:value}}),我们需要特别注意修改的语法。

        5.查询

package com.db.lx;

import java.util.ArrayList;
import java.util.List;

import org.bson.Document;

import com.com.bean.Student;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;

public class select {
	public static void main(String[] args) {
		//获取对象
		MongoClient mongoClient = new MongoClient("localhost",27017);

		//建库
		MongoDatabase database = mongoClient.getDatabase("myschool");

		//建表
		MongoCollection<Document> collection = database.getCollection("student");
		
		//查找
		FindIterable<Document> find = collection.find();
		
		//cursor 游标 指针 引用
		MongoCursor<Document> iterator = find.iterator();
		//全查
		List<Student> blist = new ArrayList<Student>();	
		//gson格式
		Gson gson = new GsonBuilder().create();		
		while(iterator.hasNext()) {
			Document next = iterator.next();
			//文档对象
			String json = next.toJson();
			Student fromJson = gson.fromJson(json, Student.class);			
			blist.add(fromJson);
		}

//		//ORM
//		while(iterator.hasNext()) {
//			
//			Document next = iterator.next();
//			
//			Student s = new Student();
//			
//			s.setName(next.getString("name"));
//			s.setAge(next.getInteger("age"));
//			blist.add(s);
//		}
		
		for(Student ss:blist) {
			System.out.println(ss);
		}
		
		mongoClient.close();
	}
}

        其中:find()方法全查数据,首先得到的Document集合对象的find,find.iterator()方法得到Document迭代器对象iterator,我们取遍历迭代器对象时,new 一个gson格式,用我们得到的迭代器对象iterator去调用next()方法获得Document对象:next,next的toJson()方法将Document对象转换为Json,将我们的Json和javabean对象student.class反射的方式传入gson.fromJson()方法中,将fromJson添加到blist学生集合中,然后在最下面遍历学生集合就可以在控制台得到我们从mongodb中查询到的数据。

        我们用ORM也是可以查询到相同结果的。

 好了,以上就是本次的全部内容。

结尾

        java操作mongodb时,增删改这些操作都在java控制台上没有直接打印,所以我们在控制台上时看任何消息,如果需要在控制台看到消息,我们就需要在每次操作的时候都在控制台上打印提示信息。

        本文主要讲述Java如何对mongodb的增删改查,到这里就结束了。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值