1 packagecom.mongo.test;2
3
4 importjava.text.SimpleDateFormat;5 importjava.util.ArrayList;6 importjava.util.List;7
8 importorg.bson.Document;9 importorg.junit.Test;10
11 importcom.mongo.util.MongoConnection;12 importcom.mongodb.client.FindIterable;13 importcom.mongodb.client.MongoCollection;14 importcom.mongodb.client.MongoCursor;15 importcom.mongodb.client.MongoDatabase;16 importcom.mongodb.client.model.Filters;17
18 public classMongoTest {19
20 MongoConnection connection = newMongoConnection();21 //连接到数据库
22 MongoDatabase mongoDatabase =connection.getConnectionBasis();23
24
25 @Test26 public voidtest(){27 //createCollection();//创建 集合 一次就好
28 MongoCollection collection =getCollection();29 insertDomcument(collection);30 findAll(collection);31 //delete(collection);
32 }33
34 /**
35 * 创建 集合【对应RDBMS 中的数据表】 com.mongodb.client.MongoDatabase.createCollection("集合名")36 */
37 public voidcreateCollection(){38 mongoDatabase.createCollection("testConllection");39 System.out.println("创建集合成功");40 }41
42 /**
43 * 获取 集合【对应RDBMS 中的数据表】com.mongodb.client.MongoDatabase.getCollection("集合名")44 */
45 public MongoCollectiongetCollection(){46 MongoCollection collection = mongoDatabase.getCollection("testConllection");47 System.out.println("转换到指定集合");48 returncollection;49 }50
51 /**
52 * 插入 文档【对应RDBMS 中的一条数据】com.mongodb.client.MongoCollection.insertOne()/insertMany()53 */
54 public void insertDomcument(MongoCollectioncollection){55 /**
56 * 1. 创建文档 org.bson.Document 参数为key-value的格式57 * 2. 创建文档集合List58 * 3. 将文档集合插入数据库集合中 mongoCollection.insertMany(List) 插入单个文档可以用 mongoCollection.insertOne(Document)59 **/
60 Document document = newDocument();61 document.append("name", "走四方");62 document.append("age", 23);63 document.append("url", "www.baidu.com");64
65 List list = new ArrayList();66 list.add(document);67
68 collection.insertMany(list);69 System.out.println("插入文档成功");70
71 //插入 单条数据
72 Document t = newDocument();73 t.append("name", "走什么");74 t.append("age", 26);75 t.append("url", "www.agen.cn");76
77 collection.insertOne(t);78 System.out.println("插入单条数据成功");79 }80
81 /**
82 * 查询 所有文档【表内 数据】com.mongodb.client.MongoCollection.find()83 * 查询 本条数据的时间节点 _id采用ObjectId格式84 *85 * ObjectId 是一个12字节 BSON 类型数据,有以下格式:86 前4个字节表示时间戳87 接下来的3个字节是机器标识码88 紧接的两个字节由进程id组成(PID)89 最后三个字节是随机数。90 */
91 public void findAll(MongoCollectioncollection){92 /**
93 * 1. 获取迭代器FindIterable94 * 2. 获取游标MongoCursor95 * 3. 通过游标遍历检索出的文档集合96 **/
97 FindIterable findIterable =collection.find();98 MongoCursor mongoCursor =findIterable.iterator();99 while(mongoCursor.hasNext()){100 Document document =mongoCursor.next();101 System.out.println("MongoDB数据:"+document);102 System.out.println("本地时间:"+new SimpleDateFormat().format(document.getObjectId("_id").getDate()));103 }104 }105
106 /**
107 * 更新 所有文档【表内 数据】com.mongodb.client.MongoCollection.updateMany()108 */
109 public void update(MongoCollectioncollection){110
111 collection.updateMany(Filters.eq("age", 26), new Document("$set",new Document("age",100)));112
113 FindIterable findIterable =collection.find();114 MongoCursor cursor =findIterable.iterator();115 while(cursor.hasNext()) {116 System.out.println("更新后的MongoDB数据:"+cursor.next());117 }118 }119
120
121 /**
122 * 删除 文档 com.mongodb.client.MongoCollection.deleteMany()/deleteOne()123 */
124 public void delete(MongoCollectioncollection){125 //删除符合条件的 第一个文档
126 collection.findOneAndDelete(Filters.eq("age", 26));127 //删除符合条件的 所有文档
128 collection.deleteMany(Filters.gte("age", 20));129
130 FindIterable findIterable =collection.find();131 MongoCursor cursor =findIterable.iterator();132 while(cursor.hasNext()){133 System.out.println("删除后的MongoDB数据:"+cursor.next());134 }135 }136
137
138
139
140
141 }