MongoDB详解(2)--java中的使用

MongoDB详解(2)

MongoDB的使用

mongo的连接和使用

连接mongo
java 复制代码
//连接mongo
MongoClient mc = new MongoClient("localhost",27017);

MongoIterable<String> ldb = mc.listDatabaseNames(); //获取mongo数据库列表
获取库
java 复制代码
//获取库中集合		
MongoDatabase db = mc.getDatabase("myschool"); //很重要常用

//获取库中的所有集合
MongoIterable<String> listIterable = db.listCollectionNames(); 
获取student集合
java 复制代码
//获取student集合
MongoCollection<Document> col = db.getCollection("student");
创建Doc对象,操作mongo
java 复制代码
//创建doc对象
Document doc = new Document();
doc.append("username", "jx");

//添加一条数据
col.insertOne(doc);
释放资源
java 复制代码
//释放资源
mc.close();

对mongo的操作

添加

1.添加一个doc

java 复制代码
//insert(一个document)
col.insertOne(doc);

2.添加多个

java 复制代码
//创建doc集合
List<Document> doclist = new ArrayList<Document>();
doclist.add(new Document("username", "jx好"));
doclist.add(new Document("username", "jx大"));
doclist.add(new Document("username", "jx坏"));
doclist.add(new Document("username", "jx怪"));
doclist.add(new Document("username", "jx乖"));
doclist.add(new Document("username", "jx怂"));
doclist.add(new Document("username", "jx强"));
doclist.add(new Document("username", "jx猛"));

//insert(一堆document)
col.insertMany(doclist);
删除
java 复制代码
//创建bson
//Bson bson = Filters.lt("age", 20);

//删除
Document bson = new Document();
bson.append("username", "jx");

//删除一条数据
DeleteResult r = col.deleteOne(bson);

//删除多条数据
DeleteResult r = col.deleteMany(bson);
修改
java 复制代码
//修改数据
Bson b1 = Filters.eq("name", "惠普小孩");
Document b2 = new Document("$set",new Document("age",18));


UpdateResult r = col.updateOne(
new Document("name","老张"), //条件
new Document("$set",new Document("age",18))); //修改的值

UpdateResult r = col.updateMany(b1, b2,new UpdateOptions().upsert(true));	
查询
java 复制代码
Gson gson = new Gson(); //将JSON转换为java中的实体类
ArrayList<Student> sList = new ArrayList<Student>();

// 全查
FindIterable<Document> find = col.find();

// 条件查询
FindIterable<Document> find = col.find(new Document("name","李四"));

// 多个条件
FindIterable<Document> find = col.find(Filters.and(Filters.gt("age", 10),Filters.eq("sex",true)));

// 模糊查询
FindIterable<Document> find = col.find(Filters.regex("name", "张"));

// 分页
FindIterable<Document> find = col.find().skip((1-1)*3).limit(3);

//排序
FindIterable<Document> find = col.find().sort(new Document("age",1));

for (Document doc : find) {
    String json = doc.toJson(); //获取的数据转换成json
    Student s = gson.fromJson(json, Student.class); //通过gson将JSON字符串转换为对象
    sList.add(s);
}

for (Student s : sList) {
    System.out.println(s);
}
相关推荐
Sayuanni%34 分钟前
初阶_多线程1(线程含义与关键属性)
java
程序媛徐师姐5 分钟前
Java基于微信小程序的模拟考试系统,附源码+文档说明
java·微信小程序·java模拟考试系统小程序·模拟考试微信小程序·模拟考试系统小程序·模拟考试小程序·java模拟考试小程序
疯狂敲代码的老刘14 分钟前
JDK 1.6到25 全版本网盘合集 (Windows + Mac + Linux)
java·linux·windows·macos·jdk
夕除16 分钟前
js--15
java·jvm·spring
曾经的三心草21 分钟前
redis-9-集群
java·redis·mybatis
sun032226 分钟前
【架构基础】Spring中的PropertySourcesPlaceholderConfigurer介绍 (并非新知识,比较古老的一种使用方式)
java·spring·架构
chilavert31829 分钟前
技术演进中的开发沉思-356:重排序(中)
java·开发语言
毕设源码-邱学长29 分钟前
【开题答辩全过程】以 基于SSM的儿童福利院管理系统为例,包含答辩的问题和答案
java·eclipse
TT哇35 分钟前
【实习】数字营销系统 银行经理端(interact_bank)前端 Vue 移动端页面的 UI 重构与优化
java·前端·vue.js·ui
Elieal1 小时前
SpringBoot 数据层开发与企业信息管理系统实战
java·spring boot·后端