在java 操作MongoDB
·
一、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();
}
}
输出结果:
更多推荐
所有评论(0)