1、创建java项目
然后在下面创建lib文件夹(Folder)用于存放jar包;并且将名为mongo-java-driver-3.4.2.jar的jar包拷入后右键Build Path,导包的工作就完成了
package com.li.conn;
import com.mongodb.MongoClient;
public class ConnDemo {
public static void main(String[] args) {
//创建连接
MongoClient mc = new MongoClient("localhost",27017);
System.out.println(mc);
//关闭资源
mc.close();
}
}
控制台出现下面内容证明连接成功
1、导包(同上)
2、编写代码
//1.创建连接
MongoClient mc = new MongoClient("localhost",27017);
//获取数据库
//方式一
List<String> dataList = mc.getDatabaseNames();
for(String nameString : dataList) {
System.out.println(nameString);
}
MongoIterable<String> dnamesIterable = mc.listDatabaseNames();
//方式二
MongoCursor<String> iterator = dnamesIterable.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
//方式三
for (String x : dnamesIterable) {
System.out.println(x);
}
MongoDatabase db = mc.getDatabase("myschool");
MongoIterable<String> cnames = db.listCollectionNames();
for(String x : cnames) {
System.out.println(x);
}
//创建库 和 集合
MongoDatabase db = mc.getDatabase("javaee2310");
System.out.println(db);
MongoCollection col = db.getCollection("person");
// System.out.println(col);
//插入数据
// col.insertOne(new Document("name","李竟坡"));
// System.out.println("新增成功");
//以传创建Document的形式插入一条数据
Document doc = new Document();
doc.append("name", "张三");
doc.append("age", 18);
doc.append("sex", "男");
doc.append("bir", new Date());
doc.append("score", 99.9);
// col.insertOne(doc);
System.out.println("一条数据插入");
//插入多条数据
Document doc1 = new Document();
doc1.append("name", "李四");
doc1.append("age", 88);
doc1.append("sex", "男");
doc1.append("bir", "1999-1-1");
doc1.append("score", 100.1);
Document doc2 = new Document();
doc2.append("name", "王五");
doc2.append("age", 30);
doc2.append("sex", "女");
doc2.append("bir", new Date());
doc2.append("score", 10.8);
Document doc3 = new Document();
doc3.append("name", "赵六");
doc3.append("age", 16);
doc3.append("sex", "女");
doc3.append("bir", new Date());
doc3.append("score", 80.5);
List<Document> doclist = new ArrayList<Document>();
doclist.add(doc1);
doclist.add(doc2);
doclist.add(doc3);
// col.insertMany(doclist);
System.out.println("插入成功");
**对Bson数据和Document的解释:**Mongo的insertMany和insertOne方法中后面需要的参数是Document类型的,而Document又继承自Bson。
public static void main(String[] args) {
MongoClient mongoClient = new MongoClient("localhost",27017);
MongoDatabase database = mongoClient.getDatabase("myschool");
MongoCollection<Document> collection = database.getCollection("teacher");
Document document = new Document();
document.append("name", "lijingpo");
document.append("age", 18);
document.append("document", "真帅啊");
System.out.println("document" + document);
Gson gson = new Gson();
//将document对象变成json字符串
String json = gson.toJson(document);
System.out.println("json" + json);
//将json字符串变为实体类对应的对象
Teacher fromJson = gson.fromJson(json, Teacher.class);
//获取实体类中的属性并进行打印
int age = fromJson.getAge();
String document2 = fromJson.getDocument();
String name = fromJson.getName();
System.out.println("Teacher" + fromJson);
System.out.println("name" + name);
System.out.println("age" + age);
System.out.println("document2" + document2);
}
//创建连接
MongoClient mc = new MongoClient("localhost",27017);
//获取数据库
MongoDatabase md = mc.getDatabase("myschool");
//获取集合
MongoCollection col = md.getCollection("teacher");
//删除一个
DeleteResult dr = col.deleteOne(new Document("name","张三"));
//删除多个
DeleteResult dr = col.deleteMany(new Document("name","李四"));
System.out.println(dr);
mc.close();
//创建连接
MongoClient mc = new MongoClient("localhost",27017);
//获取数据库
MongoDatabase md = mc.getDatabase("myschool");
//获取集合
MongoCollection col = md.getCollection("teacher");
//相当于修改的条件
//等于
Bson eq = Filters.eq("name","张四");
//小于
Bson lt = Filters.lt("age", 50);
//相当于修改字段
Document doc = new Document();
// Document eq = new Document("name","张四");
doc.append("$set", new Document("age",90));
/**
如果想修改一次修改一个文档中的多个域(如果对相关概念不理解看一之前写的关于mongo的博客),就需要嵌套;
不能两次append,原因是后一个修改会将前面的修改覆盖掉,意味着指挥保留最后一条修改域。
*/
//下面的书写是错误的(只会修改生日,年龄不会修改)
doc.append("$set",new Document("age",5));
doc.append("$set",new Dounment("birthday",2000-1-1))
UpdateResoult up = col.updateOne(eq,doc);
//正确写法
//将姓名为张四的年龄修改为5岁,生日修改为2000-1-1
Document eq = new Document("name","张四");
Document doc1 = doc.append("$set", new Document("age",5).append("birthday", 2000-1-1));
UpdateResult up = col.updateOne(eq,doc1);
//修改一条
UpdateResult up = col.updateOne(eq, doc);
//修改多条
UpdateResult up = col.updateMany(lt, doc);
System.out.println(up);
mc.close();
MongoClient mc = new MongoClient("localhost",27017);
MongoDatabase md = mc.getDatabase("javaee2310");
MongoCollection col = md.getCollection("person");
//全查
FindIterable<Document> find = col.find();
//单条件查询
FindIterable<Document> find = col.find(Filters.eq("sex","男"));
//多条件and查询
Bson bson = Filters.and(
Filters.eq("sex","男"),
Filters.lt("age", 20)
);
//多条件or查询
Bson bson = Filters.or(
Filters.eq("sex","男"),
Filters.lt("age", 20)
);
//模糊查询
//名字中包含李的
Bson bson = Filters.regex("name", "李");
//名字以李开头的
Bson bson = Filters.regex("name", "^李");
//名字以李结尾的
Bson bson = Filters.regex("name", "李$");
FindIterable<Document> find = col.find(bson);
//分页查询
FindIterable<Document> find = col.find().limit(1).skip(1);
//排序
FindIterable<Document> find = col.find().sort(new Document("age",1));
for(Document d : find) {
System.out.println(d);
}
}