public class MongoDBJDBC {
public static void main(String[] args) {
//连接到MongoDB服务
MongoClient mongoClient = new MongoClient("localhost",27017);
//连接到数据库
MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
System.out.println(mongoDatabase);
System.out.println("数据库连接成功-----------------------------------");
//创建集合
mongoDatabase.createCollection("javaCol");
System.out.println("javaCol集合创建成功------------------------------");
//选择集合
MongoCollection<Document> collection = mongoDatabase.getCollection("javaCol");
System.out.println("javaCol集合选择成功----------------------------------");
//插入文档
Document document = new Document("title","MongoDB Java").
append("description","正在学习Java中使用MongoDB").
append("by","hedanning").
append("likes","666");
collection.insertOne(document);
System.out.println("插入单个文档-----------------------------------------");
//批量插入文档
Document document1 = new Document("title","MongoDB Java").
append("description","正在学习Java中使用MongoDB_1").
append("by","hedanning").
append("likes","88");
Document document2 = new Document("title","MongoDB Java").
append("description","正在学习Java中使用MongoDB_2").
append("by","hedanning").
append("likes","999");
List<Document> documents = new ArrayList<Document>();
documents.add(document1);
documents.add(document2);
collection.insertMany(documents);
System.out.println("插入批量文档------------------------------------------");
//检索所有文档
/*
* 1.获取迭代器findIterable
* 2.获取游标mongoCursor
* 3.通过游标遍历检索出来的文档集合
* */
FindIterable<Document> findIterable = collection.find();
MongoCursor<Document> mongoCursor = findIterable.iterator();
while(mongoCursor.hasNext()){
System.out.println(mongoCursor.next());
}
System.out.println("检索文档-----------------------------------------------");
//更新文档(单个)
collection.updateOne(Filters.eq("likes","666"),new Document("$set",new Document("likes","000")));
FindIterable<Document> findIterableUpdate = collection.find();
MongoCursor<Document> mongoCursorUpdate = findIterableUpdate.iterator();
while(mongoCursorUpdate.hasNext()){
System.out.println(mongoCursorUpdate.next());
}
System.out.println("更新单个文档-------------------------------------------");
//更新文档(批量)
collection.updateMany(Filters.gte("likes","88"), new Document("$set",new Document("likes","111")));
FindIterable<Document> findIterableBatchUpdate = collection.find();
MongoCursor<Document> mongoCursorBatchUpdate = findIterableBatchUpdate.iterator();
while(mongoCursorBatchUpdate.hasNext()){
System.out.println(mongoCursorBatchUpdate.next());
}
System.out.println("更新多个文档-------------------------------------------");
//删除文档(删除符合条件的第一个文档)
collection.deleteOne(Filters.eq("likes","111"));
FindIterable<Document> findIterableDelete = collection.find();
MongoCursor<Document> mongoCursorDelete = findIterableDelete.iterator();
while(mongoCursorDelete.hasNext()){
System.out.println(mongoCursorDelete.next());
}
System.out.println("删除符合条件的第一个文档---------------------------------");
//删除文档(删除符合条件的所有文档)
collection.deleteMany(Filters.eq("likes","000"));
FindIterable<Document> findIterableBatchDelete = collection.find();
MongoCursor<Document> mongoCursorBatchDelete = findIterableBatchDelete.iterator();
while(mongoCursorBatchDelete.hasNext()){
System.out.println(mongoCursorBatchDelete.next());
}
System.out.println("删除符合条件的所有文档------------------------------------");
//查看数据库列表
for (String db:mongoClient.listDatabaseNames()) {
System.out.println(db);
}
System.out.println("查看数据库列表--------------------------");
//查看某个数据库的集合列表
for (String col:mongoDatabase.listCollectionNames()) {
System.out.println(col);
}
System.out.println("查询test数据库的集合列表-----------------");
}
}
以上代码的运行结果如下: