写点什么

MongoDB :第六章:Java 程序操作 MongoDB

  • 2021 年 11 月 11 日
  • 本文字数:3197 字

    阅读完需:约 10 分钟

MongoDatabase mongoDatabase = mongoClient.getDatabase("databaseName");


System.out.println("Connect to database successfully");


} catch (Exception e) {


System.err.println( e.getClass().getName() + ": " + e.getMessage() );


}


}


}




创建集合




我们可以使用 com.mongodb.client.MongoDatabase 类中的 createCollection()来创建集合


代码片段如下:


import com.mongodb.MongoClient;


import com.mongodb.client.MongoDatabase;


public class MongoDBJDBC{


public static void main( String args[] ){


try{


// 连接到 mongodb 服务


MongoClient mongoClient = new MongoClient( "localhost" , 27017 );


// 连接到数据库


MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");


System.out.println("Connect to database successfully");


mongoDatabase.createCollection("test");


System.out.println("集合创建成功");


}catch(Exception e){


System.err.println( e.getClass().getName() + ": " + e.getMessage() );


}


}


}


编译运行以上程序,输出结果如下:


Connect to database successfully


集合创建成功




获取集合




我们可以使用 com.mongodb.client.MongoDatabase 类的 getCollection() 方法来获取一个集合


代码片段如下:


import org.bson.Document;


import com.mongodb.MongoClient;


import com.mongodb.client.MongoCollection;


import com.mongodb.client.MongoDatabase;


public class MongoDBJDBC{


public static void main( String args[] ){


try{


// 连接到 mongodb 服务


MongoClient mongoClient = new MongoClient( "localhost" , 27017 );


// 连接到数据库


MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");


System.out.println("Connect to database successfully");


MongoCollection<Document> collection = mongoDatabase.getCollection("test");


System.out.println("集合 test 选择成功");


}catch(Exception e){


System.err.println( e.getClass().getName() + ": " + e.getMessage() );


}


}


}


编译运行以上程序,输出结果如下:


Connect to database successfully


集合 test 选择成功




插入文档




我们可以使用 com.mongodb.client.MongoCollection 类的 insertMany() 方法来插入一个文档


代码片段如下:


import java.util.ArrayList;


import java.util.List;


import org.bson.Document;


import com.mongodb.MongoClient;


import com.mongodb.client.MongoCollection;


import com.mongodb.client.MongoDatabase;


public class MongoDBJDBC{


public static void main( String args[] ){


try{


// 连接到 mongodb 服务


MongoClient mongoClient = new MongoClient( "localhost" , 27017 );


// 连接到数据库


MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");


System.out.println("Connect to database successfully");


MongoCollection<Document> collection = mongoDatabase.getCollection("test");


System.out.println("集合 test 选择成功");


//插入文档


/**


  • 创建文档 org.bson.Document 参数为 key-value 的格式

  • 创建文档集合 List<Document>

  • 将文档集合插入数据库集合中 mongoCollection.insertMany(List<Document>) 插入单个文档可以用 mongoCollection.insertOne(Document)

  • */


Document document = new Document("title", "MongoDB").


append("description", "database").


append("likes", 100).


append("by", "Fly");


List<Document> documents = new ArrayList<Document>();


documents.add(document);


collection.insertMany(documents);


System.out.println("文档插入成功");


}catch(Exception e){


System.err.println( e.getClass().getName() + ": " + e.getMessage() );


}


}


}


编译运行以上程序,输出结果如下:


Connect to database successfully


集合 test 选择成功


文档插入成功




检索所有文档




我们可以使用 com.mongodb.client.MongoCollection 类中的 find() 方法来获取集合中的所有文档。


此方法返回一个游标,所以你需要遍历这个游标。


代码片段如下:


import org.bson.Document;


import com.mongodb.MongoClient;


import com.mongodb.client.FindIterable;


import com.mongodb.client.MongoCollection;


import com.mongodb.client.MongoCursor;


import com.mongodb.client.MongoDatabase;


public class MongoDBJDBC{


public static void main( String args[] ){


try{


// 连接到 mongodb 服务


MongoClient mongoClient = new MongoClient( "localhost" , 27017 );


// 连接到数据库


MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");


System.out.println("Connect to database successfully");


MongoCollection<Document> collection = mongoDatabase.getCollection("test");


System.out.println("集合 test 选择成功");


//检索所有文档


/**


  • 获取迭代器 FindIterable<Document>

  • 获取游标 MongoCursor<Document>

  • 通过游标遍历检索出的文档集合

  • */


FindIterable<Document> findIterable = collection.find();


MongoCursor<Document> mongoCursor = findIterable.iterator();


while(mongoCursor.hasNext()){


System.out.println(mongoCursor.next());


}


}catch(Exception e){


System.err.println( e.getClass().getName() + ": " + e.getMessage() );


}


}


}


编译运行以上程序,输出结果如下:


Connect to database successfully


集合 test 选择成功


Document{{_id=56e65fb1fd57a86304fe2692, title=MongoDB, description=database, likes=100, by=Fly}}




更新文档




你可以使用 com.mongodb.client.MongoCollection 类中的 updateMany() 方法来更新集合中的文档。


代码片段如下:


import org.bson.Document;


import com.mongodb.MongoClient;


import com.mongodb.client.FindIterable;


import com.mongodb.client.MongoCollection;


import com.mongodb.client.MongoCursor;


import com.mongodb.client.MongoDatabase;


import com.mongodb.client.model.Filters;


public class MongoDBJDBC{


public static void main( String args[] ){


try{


// 连接到 mongodb 服务


MongoClient mongoClient = new MongoClient( "localhost" , 27017 );


// 连接到数据库


MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");


System.out.println("Connect to database successfully");


MongoCollection<Document> collection = mongoDatabase.g


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


etCollection("test");


System.out.println("集合 test 选择成功");


//更新文档 将文档中 likes=100 的文档修改为 likes=200


collection.updateMany(Filters.eq("likes", 100), new Document("$set",new Document("likes",200)));


//检索查看结果


FindIterable<Document> findIterable = collection.find();


MongoCursor<Document> mongoCursor = findIterable.iterator();


while(mongoCursor.hasNext()){


System.out.println(mongoCursor.next());


}


}catch(Exception e){


System.err.println( e.getClass().getName() + ": " + e.getMessage() );


}


}


}


编译运行以上程序,输出结果如下:


Connect to database successfully


集合 test 选择成功


Document{{_id=56e65fb1fd57a86304fe2692, title=MongoDB, description=database, likes=200, by=Fly}}




删除第一个文档




要删除集合中的第一个文档,首先你需要使用 com.mongodb.DBCollection 类中的 findOne()方法来获取第一个文档,然后使用 remove 方法删除。


代码片段如下:


import org.bson.Document;


import com.mongodb.MongoClient;


import com.mongodb.client.FindIterable;


import com.mongodb.client.MongoCollection;


import com.mongodb.client.MongoCursor;


import com.mongodb.client.MongoDatabase;


import com.mongodb.client.model.Filters;


public class MongoDBJDBC{

评论

发布
暂无评论
MongoDB :第六章:Java程序操作MongoDB