写点什么

MongoDB :第六章:Java 程序操作 MongoDB,mysql 复合索引面试题

作者:Java高工P7
  • 2021 年 11 月 10 日
  • 本文字数:3258 字

    阅读完需:约 11 分钟



连接数据库




连接数据库,你需要指定数据库名称,如果指定的数据库不存在,mongo 会自动创建数据库。


连接数据库的 Java 代码如下:


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");


}catch(Excep


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


tion e){


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


}


}


}


现在,让我们来编译运行程序并连接到数据库 mycol。


你可以根据你的实际环境改变 MongoDB JDBC 驱动的路径。


本实例将 MongoDB JDBC 启动包 mongo-java-driver-3.2.2.jar 放在本地目录下:


$ javac -cp .:mongo-java-driver-3.2.2.jar MongoDBJDBC.java


$ java -cp .:mongo-java-driver-3.2.2.jar MongoDBJDBC


Connect to database successfully


Authentication: true


本实例中 Mongo 数据库无需用户名密码验证。如果你的 Mongo 需要验证用户名及密码,可以使用以下代码:


import java.util.ArrayList;


import java.util.List;


import com.mongodb.MongoClient;


import com.mongodb.MongoCredential;


import com.mongodb.ServerAddress;


import com.mongodb.client.MongoDatabase;


public class MongoDBJDBC {


public static void main(String[] args){


try {


//连接到 MongoDB 服务 如果是远程连接可以替换“localhost”为服务器所在 IP 地址


//ServerAddress()两个参数分别为 服务器地址 和 端口


ServerAddress serverAddress = new ServerAddress("localhost",27017);


List<ServerAddress> addrs = new ArrayList<ServerAddress>();


addrs.add(serverAddress);


//MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码


MongoCredential credential = MongoCredential.createScramSha1Credential("username", "databaseName", "password".toCharArray());


List<MongoCredential> credentials = new ArrayList<MongoCredential>();


credentials.add(credential);


//通过连接认证获取 MongoDB 连接


MongoClient mongoClient = new MongoClient(addrs,credentials);


//连接到数据库


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}}




更新文档

用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
MongoDB :第六章:Java程序操作MongoDB,mysql复合索引面试题