1.连接数据库
导入jar包
创建MongoDB数据库对象
MongoClient mc = new MongoClient("localhost", 27017);
2.获取所有的数据库名
List<String> databaseNames = mc.getDatabaseNames();
3.获取所有的数据库的对象
MongoDatabase db = mc.getDatabase("myschool");
4.获取库中所有的collection(表)
MongoIterable<String> listCollectionNames = db.listCollectionNames();
5.获得collection(表)对象
MongoCollection<Document> collection = db.getCollection("Fruits1");
6.获取表里每个Document(记录)对象
FindIterable<Document> find = collection.find();
7.增加数据
增:先创建Document对象 利用put方法 保存K和Value K为字段名 value为值
Document doc = new Document();
doc.put("uid", 18);
doc.put("utime", new Date());
doc.put("uname", "小王");
collection.insertOne(doc);
一次添加多个用List保存Document对象 用many方法
Document doc = new Document();
doc.put("uid", 18);
doc.put("utime", new Date());
doc.put("uname", "小王");
Document docc = new Document();
doc.put("uid", 19);
doc.put("utime", new Date());
doc.put("uname", "大王");
List<Document> dlist=new ArrayList<>();
dlist.add(doc);
dlist.add(docc);
collection.insertMany(dlist);
8.删除数据 删除第一个 deleteOne(条件)
//要传入Bson对象
Bson eq = Filters.eq("uname", "大王");
DeleteResult deleteOne = coo.deleteOne(eq);
System.out.println(deleteOne);//返回执行语句结果
MongoCursor<Document> iterator = coo.find().iterator();
while(iterator.hasNext()) {
System.out.println(iterator.next());
}
一次删除符合条件的全部 deleteMany(条件)
//要传入Bson对象
Bson eq = Filters.eq("uid", 18);
// 将符合条件的一次全删
DeleteResult deleteMany = coo.deleteMany(eq);
System.out.println(deleteMany);
MongoCursor<Document> iterator = coo.find().iterator();
9.修改 修改一条 updateOne(条件, 内容);
MongoClient mc = new MongoClient("localhost", 27017);
MongoDatabase db = mc.getDatabase("Fruits");
MongoCollection<Document> collection = db.getCollection("Fruits1");
//设置修改条件
Bson eq = Filters.eq("uid", 17);
Document doc = new Document();
//修改的的内容
doc.put("$set",new Document("uname", "小王"));
UpdateResult row = collection.updateOne(eq, doc);
//打印修改条数
System.out.println(row);
mc.close();
修改多条 updateMany(条件, 内容);
//将符合条件的数据全部修改
UpdateResult row = collection.updateMany(eq, doc);
10.查询 全查 find()
FindIterable<Document> find = collection.find();
for (Document document : find) {
System.out.println(document);
}
带条件查询 find(Bson bson)
Bson eq = Filters.and(Filters.eq("uid", 17),Filters.eq("uscore",5));
FindIterable<Document> find = collection.find(eq);
for (Document document : find) {
System.out.println(document);
}
模糊查询:Filters.regex("key","value") ^以XX开头 $以XX结尾
Bson regex = Filters.regex("uname","王");
FindIterable<Document> find = collection.find(regex);
for (Document document : find) {
System.out.println(document);
}
11.分页
skip(跳过几个).limit(每页显示几个);
FindIterable<Document> limit = collection.find().skip(1).limit(3);
for (Document document : limit) {
System.out.println(document);
}
12.排序 sort(Bson bson) -1降序 1升序
方式1:
Bson bson = Filters.eq("_id",-1);
FindIterable<Document> limit = collection.find().sort(bson);
for (Document document : limit) {
System.out.println(document);
}
方式2:
FindIterable<Document> limit = collection.find().sort(new Document("_id", 1));
for (Document document : limit) {
System.out.println(document);
}
13.映射对象
1.获得gson对象
2.调用fromJson(String json, Class<FruitsCommit>) 方法完成orm
MongoClient mc = new MongoClient("localhost", 27017);
MongoDatabase db = mc.getDatabase("Fruits");
MongoCollection<Document> collection = db.getCollection("Fruits1");
//获取gson对象
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
FruitsCommit fc = new FruitsCommit();
FindIterable<Document> find = collection.find();
List<FruitsCommit> flist=new ArrayList<FruitsCommit>();
//循环表里的数据
for (Document doc : find) {
//orm
FruitsCommit json = gson.fromJson(doc.toJson(), FruitsCommit.class);
//添加
flist.add(json);
}
//循环展示对象信息
for (FruitsCommit fx : flist) {
System.out.println(fx);
}