目录
Java连接MongoDB
1.Java环境中导入MonagDB驱动包
2.获取链接对象
//获取链接对象
MongoClient mongoClient = new MongoClient("localhost",27017);
3.获取数据库对象
//获取数据库对象
MongoDatabase database = mongoClient.getDatabase("myschool");
4.获取集合对象
//获取集合对象
MongoCollection<Document> student = database.getCollection("student");
5.关闭连接
//关闭连接
mongoClient.close();
Java操作MongoDB
MongoDB库操作
查看MongoDB链接中的所有的库
//查看链接的MongoDB中的所有的库
MongoIterable<String> dblist = mongoClient.listDatabaseNames();
for (String list:dblist) {
System.out.println(list);
}
使用库查看库中的集合
//使用库查看库中的集合
MongoDatabase database = mongoClient.getDatabase("myschool");
MongoIterable<String> coollist = database.listCollectionNames();
for (String list:coollist) {
System.out.println(list);
}
MongoDB集合操作
插入数据
插入单条数据
//新增单个
Document document = new Document();
document.put("name","老八");
document.put("age",88);
document.put("sex","女");
document.put("wanju","小汽车");
student.insertOne(document);
插入多条数据
//新增多个
Document document1 = new Document();
document1.put("name","老十");
document1.put("age",55);
document1.put("sex","男");
document1.put("wanju","小汽车");
Document document2 = new Document();
document2.put("name","老十一");
document2.put("age",66);
document2.put("sex","女");
document2.put("wanju","小火车");
Document document3 = new Document();
document3.put("name","老十二");
document3.put("age",77);
document3.put("sex","男");
document3.put("wanju","小电车");
Document document4 = new Document();
document4.put("name","老十三");
document4.put("age",88);
document4.put("sex","女");
document4.put("wanju","小轮船");
Document document5 = new Document();
document5.put("name","老十四");
document5.put("age",99);
document5.put("sex","男");
document5.put("wanju","小飞机");
List<Document> documentList = new ArrayList<Document>();
documentList.add(document1);
documentList.add(document2);
documentList.add(document3);
documentList.add(document4);
documentList.add(document5);
student.insertMany(documentList);
删除数据
删除单条数据
//删除单条数据
//将姓名为张三第一个匹配到的数据删除
DeleteResult deleteOne = collection.deleteOne(new Document("name","张三"));
删除多条数据
//删除多条数据
//将姓名为张三的所有匹配到的数据删除
DeleteResult deleteMany = collection.deleteMany(new Document("name","张三"));
修改数据
修改单条数据
//修改单个
//将年龄为20岁第一个匹配到的数据的姓名改为张三
Bson eq = Filters.eq("name", "张三");
UpdateResult updateOne = student.updateOne(eq,new Document("$set",new Document("age","20")));
修改多条数据
//修改多个
//将年龄为100岁能匹配到的全部数据的姓名改为老八
Bson eq = Filters.eq("name", "老八");
UpdateResult updateMany = student.updateMany(and, new Document("$inc", new Document("age", "100")));
多条件修改数据
//多条件修改
//将年龄大于等于20小于等于30的性别改为保密
Bson bson = Filters.and(Filters.gte("age", 20),Filters.lte("age", 30));
UpdateResult updateMany = student.updateMany(bson, new Document("$set", new Document("sex", "保密")));
匹配不到就做新增
//匹配不到就新增
//将年龄为100岁第一个匹配到的姓名改为老八若匹配不到则新增数据
Bson eq = Filters.eq("name", "老八");
UpdateResult updateOne = student.updateOne(eq,new Document("$set",new Document("age","100")),new UpdateOptions().upsert(true));
查询数据
全查
//表对象
MongoCollection<Document> comm = bbsDB.getCollection("student");
//全查
FindIterable<Document> find = comm.find();
//迭代器对象
MongoCursor<Document> iterator = find.iterator();
//循环遍历
while(iterator.hasNext()){
System.out.println(inerator.next());
}
带条件查询
//表对象
MongoCollection<Document> comm = bbsDB.getCollection("student");
//添加条件
Bson bson = Filters.eq("sname","专家说空腹不宜吃早餐");
//带上条件查询
FindIterable<Document> find = comm.find(bson);
//迭代器对象
MongoCursor<Document> iterator = find.iterator();
//循环遍历
while(iterator.hasNext()){
System.out.println(inerator.next());
}
带多个条件查询
//表对象
MongoCollection<Document> comm = bbsDB.getCollection("student");
//添加条件
Bson bson = Filters.and(
Filters.eq("sname","专家说空腹不宜吃早餐"),
Filters.gte("sage",8)
);
//带上多个条件查询
FindIterable<Document> find = comm.find(bson);
//迭代器对象
MongoCursor<Document> iterator = find.iterator();
//循环遍历
while(iterator.hasNext()){
System.out.println(inerator.next());
}
模糊查询
//表对象
MongoCollection<Document> comm = bbsDB.getCollection("student");
//添加条件
Bson bson = Filters.regex("sname","吃早餐");
//带上模糊条件查询
FindIterable<Document> find = comm.find(bson);
//迭代器对象
MongoCursor<Document> iterator = find.iterator();
//循环遍历
while(iterator.hasNext()){
System.out.println(inerator.next());
}
分页查询
//表对象
MongoCollection<Document> comm = bbsDB.getCollection("student");
//分页查询
FindIterable<Document> find = comm.find(bson),skip(2),limit(3);
//迭代器对象
MongoCursor<Document> iterator = find.iterator();
//循环遍历
while(iterator.hasNext()){
System.out.println(inerator.next());
}
排序查询
//表对象
MongoCollection<Document> comm = bbsDB.getCollection("student");
//添加排序 1表示升序 -1表示降序
Bson bson = new Document("sid",-1);
//带上排序条件查询
FindIterable<Document> find = comm.find().sort(bson);
//迭代器对象
MongoCursor<Document> iterator = find.iterator();
//循环遍历
while(iterator.hasNext()){
System.out.println(inerator.next());
}