MongoDB详解(2)
- MongoDB的使用
- mongo的连接和使用
- 连接mongo
- 获取库
- 获取student集合
- 创建Doc对象,操作mongo
- 释放资源
- 对mongo的操作
- 添加
- 删除
- 修改
- 查询
MongoDB的使用
mongo的连接和使用
连接mongo
//连接mongo
MongoClient mc = new MongoClient("localhost",27017);
MongoIterable<String> ldb = mc.listDatabaseNames(); //获取mongo数据库列表
获取库
//获取库中集合
MongoDatabase db = mc.getDatabase("myschool"); //很重要常用
//获取库中的所有集合
MongoIterable<String> listIterable = db.listCollectionNames();
获取student集合
//获取student集合
MongoCollection<Document> col = db.getCollection("student");
创建Doc对象,操作mongo
//创建doc对象
Document doc = new Document();
doc.append("username", "jx");
//添加一条数据
col.insertOne(doc);
释放资源
//释放资源
mc.close();
对mongo的操作
添加
1.添加一个doc
//insert(一个document)
col.insertOne(doc);
2.添加多个
//创建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);
删除
//创建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);
修改
//修改数据
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));
查询
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);
}