一、Java链接MongoDB

1.导入MongoDB 驱动包

2.获取连接对象:

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

3.关闭连接:

        mc.close();

二、查看库,查看集合


package com.ztt.coll;

import org.bson.Document;

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

public class CollTest {

	public static void main(String[] args) {
		MongoClient mc = new MongoClient("localhost",27017);
		
		MongoDatabase db = mc.getDatabase("myschool");
		

		MongoIterable<String> listCollectionNames=db.listCollectionNames();
		
		for(String coll:listCollectionNames) {
			System.out.println(coll);
		}
		
		MongoCollection<Document> coll=db.getCollection("student");
		System.out.println(coll);
	}

}

输出结果:

 

package com.ztt.db;

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

public class DBTest {
	public static void main(String[] args) {
		MongoClient mc = new MongoClient("localhost",27017);
		MongoIterable<String> listDatabaseNames = mc.listDatabaseNames();
//		listDatabaseNames.iterator();
//		for(String name:listDatabaseNames) {
//			System.out.println(name);
//		}
		
//		MongoDatabase db = mc.getDatabase("myschool");//存在MongoDatabase db = mc.getDatabase("myschool");
		MongoDatabase db = mc.getDatabase("haha");//不存在com.mongodb.MongoDatabaseImpl@49993335帮你创建
		System.out.println(db);
		
		mc.close();
	}

}

输出结果:

 

 

三、添加数据

package com.ztt.add;

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

import org.bson.Document;

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

public class InsertTest {
	public static void main(String[] args) {
		MongoClient mc = new MongoClient("localhost",27017);
		MongoDatabase db = mc.getDatabase("myschool");
		MongoCollection<Document> coll=db.getCollection("teacher");
		
		Document doc=new Document();
		doc.append("tname", "老刘");
		doc.append("tsex", "男");
		doc.append("tbir", "1999-1-1");
		doc.append("tage", 40);
		
		coll.insertOne(doc);
		Document doc1 = new Document();
		doc1.append("tname", "小杨");
		doc1.append("tsex", "女");
		doc1.append("tbir", "1996-2-2");
		doc1.append("tage", 21);
		
		Document doc2 = new Document();
		doc2.append("tname", "小王");
		doc2.append("tsex", "男");
		doc2.append("tbir", "1996-2-2");
		doc2.append("tage", 33);
		
		Document doc3 = new Document();
		doc3.append("tname", "小彭");
		doc3.append("tsex", "男");
		doc3.append("tbir", "2002-4-4");
		doc3.append("tage", 23);
		
		List<Document> doclist = new ArrayList<Document>();
        doclist.add(doc1);
        doclist.add(doc2);
        doclist.add(doc3);
        
        coll.insertMany(doclist);
		
		
		System.out.println("添加成功");
		mc.close();
	}

}

四、删除数据

package com.ztt.del;

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.result.DeleteResult;

public class DeleteTest {
	public static void main(String[] args) {
		MongoClient mc = new MongoClient("localhost",27017);
		MongoDatabase db = mc.getDatabase("myschool");
		MongoCollection<Document> coll=db.getCollection("teacher");
		
//		Document b1=new Document();
//		b1.append("tname", "小王");
		Bson b1 = Filters.lt("tage", 40);
//		Bson b2 = Filters.and(Filters.gt("tage", 40),Filters.lt("tage", 80));
		
		//删除编号最小的
//		DeleteResult deleteOne = coll.deleteOne(b1);
//		long deletedCount = deleteOne.getDeletedCount();
//		System.out.println(deletedCount);
		
	
		DeleteResult deleteMany = coll.deleteMany(b1);
		long deletedCount = deleteMany.getDeletedCount();
		System.out.println(deletedCount);
		
		mc.close();
	}
	

}

五、修改数据

Filters

该过滤器类为所有的MongoDB的查询操作静态工厂方法。每个方法返回BSON类型,又可以传递给期 望一个查询过滤器的任何方法的一个实例。

eq:匹配等于指定值的值。

gt:匹配大于指定值的值。

gte:匹配大于或等于指定值的值。

lt:匹配小于规定值的值。

lte:匹配是小于或等于规定值的值。

ne:匹配不等于指定值的所有值。

in:匹配任何在数组中指定的值。

nin:没有匹配数组中的规定值。 

package com.ztt.edit;

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.result.UpdateResult;

public class UpdateTest {
	public static void main(String[] args) {
		MongoClient mc = new MongoClient("localhost",27017);
		MongoDatabase db = mc.getDatabase("myschool");
		MongoCollection<Document> coll=db.getCollection("teacher");
		
//		Bson b1 = Filters.eq("tname","老刘");
//		Document document = new Document();
//		document.append("$set", new Document("tage",51));
		
//		UpdateResult updateOne = coll.updateOne(b1, document);
		
		Bson b1=Filters.or(
				Filters.eq("tname","小王"),
				Filters.eq("tname","小彭")
				);
		Document document = new Document();
		//$inc累加
		document.append("$inc", new Document("tage",100));
		
		
		UpdateResult updateOne = coll.updateMany(b1, document);
		long matchedCount = updateOne.getMatchedCount();
		long modifiedCount = updateOne.getModifiedCount();
		System.out.println(matchedCount);
		System.out.println(modifiedCount);
		mc.close();
	}

}

六、查询数据

package com.ztt.find;

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

import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;

public class SelectTest {
	public static void main(String[] args) {
		MongoClient mc = new MongoClient("localhost",27017);
		MongoDatabase db = mc.getDatabase("myschool");
		MongoCollection<Document> coll=db.getCollection("teacher");
		
		
//		Bson b1 = Filters.eq("tname","小王");
		Bson b1 = Filters.regex("tname", "老");
		
		
		//分页
//		FindIterable<Document> find = coll.find().skip((2-1)*3).limit(3);
		
		//排序
		Document document = new Document();
		document.append("tage", -1);
		
		FindIterable<Document> find = coll.find().sort(new Document("tage", -1));
		
//		FindIterable<Document> find = coll.find(b1);
		for(Document doc : find) {
			System.out.println(doc);
		}
		
		mc.close();
	}

}
package com.ztt.orm;

import org.bson.Document;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;

public class InsertOrmTest {
	public static void main(String[] args) {
		MongoClient mc = new MongoClient("localhost",27017);
		MongoDatabase db = mc.getDatabase("myschool");
		MongoCollection<Document> coll=db.getCollection("teacher");
		
		Teacher t= new Teacher();
		t.setTsex("男");
		t.setTbir("2000-2-2");
		t.setTname("张三");
		t.setTage(20);
		
//		Document doc = new Document();
//		doc.append("tname", t.getTname());
//		doc.append("tsex", t.getTsex());
//		doc.append("tbir", t.getTbir());
//		doc.append("tage", t.getTage());
		
		//创建Gson对象
		Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
		
		//将java对象转化成json字符串
		String json = gson.toJson(t);
		System.out.println(json);
		
		//将json字符串转化成Document对象
		Document doc = Document.parse(json);
		System.out.println(doc);
		
		coll.insertOne(doc);
		
	}

}

输出结果:

 

teacher 类:

package com.ztt.orm;

public class Teacher {
	private String tname;
	private String tsex;
	private String tbir;
	private int tage;
	public Teacher() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Teacher(String tname, String tsex, String tbir, int tage) {
		super();
		this.tname = tname;
		this.tsex = tsex;
		this.tbir = tbir;
		this.tage = tage;
	}
	/**
	 * @return the tname
	 */
	public String getTname() {
		return tname;
	}
	/**
	 * @param tname the tname to set
	 */
	public void setTname(String tname) {
		this.tname = tname;
	}
	/**
	 * @return the tsex
	 */
	public String getTsex() {
		return tsex;
	}
	/**
	 * @param tsex the tsex to set
	 */
	public void setTsex(String tsex) {
		this.tsex = tsex;
	}
	/**
	 * @return the tbir
	 */
	public String getTbir() {
		return tbir;
	}
	/**
	 * @param tbir the tbir to set
	 */
	public void setTbir(String tbir) {
		this.tbir = tbir;
	}
	/**
	 * @return the tage
	 */
	public int getTage() {
		return tage;
	}
	/**
	 * @param tage the tage to set
	 */
	public void setTage(int tage) {
		this.tage = tage;
	}
	@Override
	public String toString() {
		return "Teacher [tname=" + tname + ", tsex=" + tsex + ", tbir=" + tbir + ", tage=" + tage + "]";
	}
	

}

 

package com.ztt.orm;

import java.util.ArrayList;
import java.util.List;
import com.ztt.orm.*;
import org.bson.Document;

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.MongoDatabase;

public class SelectOrmTest {
	public static void main(String[] args) {
		List<Teacher> tlist=new ArrayList<Teacher>();
		Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
		
		MongoClient mc = new MongoClient("localhost",27017);
		MongoDatabase db = mc.getDatabase("myschool");
		MongoCollection<Document> coll=db.getCollection("teacher");
		
		FindIterable<Document> find = coll.find();
		for(Document doc: find) {
			Teacher t = gson.fromJson(doc.toJson(), Teacher.class);
			System.out.println(t);
			tlist.add(t);
			
		}
		mc.close();
	}

}

输出结果:

 

 

 

 

 

 

 

 

 

 

 

 

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐