1、實際應用過程中肯定不會直接通過Linux的方式來連接和使用數據庫,而是通過其他驅動的方式來使用mongoDB
2、本教程只針對於Java來做操作,主要是模擬mongoDB數據庫在開發過程中的應用
3、在官網下載對應的jar包,來做mongoDB的驅動支持,當然也可以利用pom.xml文件自己下載
jar下載地址:https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongodb-driver/3.4.2/
這個是3.4.2版本的,有需要可以下載其他版本
也可以在pom.xml文件中加入
<dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver</artifactId> <version>3.4.2</version> </dependency> </dependencies>
4、連接數據庫,連接數據庫的方式有兩種。一種是沒有用戶名密碼,另外一種是有的
1)沒有密碼
public static void main(String[] args) { try{ // 連接到 mongodb 服務 MongoClient mongoClient = new MongoClient( "localhost" , 27017 ); // 連接到數據庫 MongoDatabase mongoDatabase = mongoClient.getDatabase("test"); System.out.println("Connect to database successfully"); }catch(Exception e){ System.err.println( e.getClass().getName() + ": " + e.getMessage() ); } }
2)有密碼
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() ); } }
5、創建集合
public static void main(String[] args) { try{ // 連接到 mongodb 服務 MongoClient mongoClient = new MongoClient( "localhost" , 27017 ); // 連接到數據庫 MongoDatabase mongoDatabase = mongoClient.getDatabase("test"); System.out.println("Connect to database successfully"); mongoDatabase.createCollection("test"); System.out.println("集合創建成功"); }catch(Exception e){ System.err.println( e.getClass().getName() + ": " + e.getMessage() ); } }
6、獲取集合
public static void main(String[] args) { try{ // 連接到 mongodb 服務 MongoClient mongoClient = new MongoClient( "localhost" , 27017 ); // 連接到數據庫 MongoDatabase mongoDatabase = mongoClient.getDatabase("test"); 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() ); } }
7、插入文檔(BSON格式)
public static void main(String[] args) { try{ MongoClient mongoClient = new MongoClient( "localhost" , 27017 ); // 連接到 mongodb 服務 MongoDatabase mongoDatabase = mongoClient.getDatabase("test"); // 連接到數據庫 System.out.println("Connect to database successfully"); MongoCollection<Document> collection = mongoDatabase.getCollection("test"); //獲取集合 System.out.println("集合 test 選擇成功"); Document document = new Document("title", "MongoDB").append("description", "database").append("likes", 100); //新建文檔 List<Document> documents = new ArrayList<Document>(); documents.add(document); collection.insertMany(documents); //添加文檔(對應的BSON數據) System.out.println("文檔插入成功"); }catch(Exception e){ System.err.println( e.getClass().getName() + ": " + e.getMessage() ); } }
8、檢索文檔,查找對用數據
public static void main(String[] args) { try{ MongoClient mongoClient = new MongoClient( "localhost" , 27017 ); // 連接到 mongodb 服務 MongoDatabase mongoDatabase = mongoClient.getDatabase("test"); // 連接到數據庫 System.out.println("Connect to database successfully"); MongoCollection<Document> collection = mongoDatabase.getCollection("test"); //獲取集合 System.out.println("集合 test 選擇成功"); 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() ); } }
9、更新文檔數據
public static void main( String args[] ){ try{ MongoClient mongoClient = new MongoClient( "localhost" , 27017 ); // 連接到 mongodb 服務 MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol"); // 連接到數據庫 System.out.println("Connect to database successfully"); MongoCollection<Document> collection = mongoDatabase.getCollection("test"); System.out.println("集合 test 選擇成功"); collection.updateMany(Filters.eq("likes", 100), new Document("$set",new Document("likes",200))); //更新文檔 將文檔中likes=100的文檔修改為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() ); } }
10、刪除文檔
public static void main( String args[] ){ try{ MongoClient mongoClient = new MongoClient( "localhost" , 27017 ); // 連接到 mongodb 服務 MongoDatabase mongoDatabase = mongoClient.getDatabase("test"); // 連接到數據庫 System.out.println("Connect to database successfully"); MongoCollection<Document> collection = mongoDatabase.getCollection("test"); System.out.println("集合 test 選擇成功"); collection.deleteOne(Filters.eq("likes", 200)); //刪除符合條件的第一個文檔 collection.deleteMany (Filters.eq("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() ); } }
11、基本的操作就是這樣,在實際應用過程中,可以通過一定的數據格式要求來做一些修改和添加,數據的應用可以通過Document來具體獲取獲取進行處理
12、為了方便數據庫的管理和學習也可以參考其他的學習方法,來實現對應的結果
13、推薦一個學習mongoDB的網站,適合新手!老鳥略過。。。
網址:http://www.runoob.com/mongodb/mongodb-tutorial.html