packagecom.xctdemo.main;importjava.util.ArrayList;importjava.util.List;importorg.bson.Document;importcom.mongodb.MongoClient;importcom.mongodb.client.FindIterable;importcom.mongodb.client.MongoCollection;importcom.mongodb.client.MongoCursor;importcom.mongodb.client.MongoDatabase;importcom.mongodb.client.model.Filters;public classHelloMongoDB {public static voidmain(String[] args) {
System.out.println("---- Hello MongoDB ----");try{//连接到 mongodb 服务
MongoClient mongoClient = new MongoClient("localhost", 27017);//连接到数据库
MongoDatabase mongoDatabase = mongoClient.getDatabase("world");
System.out.println("Connect to database successfully");/** mongoDatabase.createCollection("city");
* System.out.println("集合city创建成功"); //*/
//获取集合
MongoCollection collection =mongoDatabase
.getCollection("city");
System.out.println("集合 city 选择成功");//在集合中插入文档
/*** 1. 创建文档 org.bson.Document 参数为key-value的格式 2. 创建文档集合List
* 3. 将文档集合插入数据库集合中 mongoCollection.insertMany(List)
* 插入单个文档可以用 mongoCollection.insertOne(Document)
**/Document document= new Document("name", "beijing")
.append("country", "china").append("provice", "BEIJING")
.append("people-count", 1000);
List documents = new ArrayList();
documents.add(document);
collection.insertMany(documents);
System.out.println("文档插入成功-Many");
Document mydocument= new Document("name", "washington")
.append("country", "america")
.append("provice", "WASHINGTON")
.append("people-count", 1200);
collection.insertOne(mydocument);
System.out.println("文档插入成功-One");//检索所有文档
showDocuments(collection);//删除符合条件的第一个文档//collection.deleteOne(Filters.eq("name", "beijing"));//删除所有符合条件的文档
collection.deleteMany(Filters.eq("name", "beijing"));
System.out.println("---- deleted OK ----");
System.out.println("--------------------------");//更新文档 将文档中likes=100的文档修改为likes=200
collection.updateMany(Filters.eq("name", "washington"),new Document("$set", new Document("country", "JAPAN")));//检索所有文档
showDocuments(collection);
}catch(Exception e) {
System.err.println(e.getClass().getName()+ ": " +e.getMessage());
}
System.out.println("---- over ----");
}private static void showDocuments(MongoCollectioncollection) {/*** 1. 获取迭代器FindIterable 2. 获取游标MongoCursor 3.
* 通过游标遍历检索出的文档集合
**/FindIterable findIterable =collection.find();
MongoCursor mongoCursor =findIterable.iterator();while(mongoCursor.hasNext()) {
System.out.println(mongoCursor.next());//.get("name")
}
}
}