кодесурса
«MongoDB

MongoDb: драйвер Java

script1adsense2code
script1adsense3code

Вступление

MongoDB обеспечивает связь для клиентских приложений Java с использованием драйвера Java. Использовать драйвер Java просто, просто включите драйвер jar mongo.jar в ваш путь к классам. Вы получите больше информации о Java API здесь .

Загрузите mongo.jar отсюда .

JDBC API может делать следующие вещи:

  • Установите соединение с базой данных или получите доступ к любому источнику табличных данных.
  • Отправить различные заявления MongoDB.
  • Получать и обрабатывать результаты, полученные из базы данных.

Создание соединения

Вот некоторые из распространенных способов подключения к серверу MongoDB:

Чтобы напрямую подключиться к одному серверу MongoDB:


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

Чтобы подключиться к набору реплик с автоматическим обнаружением первичного сервера, укажите начальный список членов:


MongoClient mongoClient = new MongoClient(Arrays.asList(new ServerAddress("localhost", 27017),
                                      new ServerAddress("localhost", 27018),
                                      new ServerAddress("localhost", 27019)));

Аутентификация (необязательно):
MongoDB может работать в безопасном режиме, где доступ к базам данных контролируется с помощью аутентификации. При запуске в этом режиме любое клиентское приложение должно предоставить список учетных данных, которые будут использоваться для проверки подлинности. В драйвере Java вы просто предоставляете учетные данные при создании экземпляра MongoClient:


MongoCredential credential = MongoCredential.createMongoCRCredential(userName, database, password);
MongoClient mongoClient = new MongoClient(new ServerAddress(), Arrays.asList(credential)); 

Подключение к базе данных MongoDB:

Следующий код показывает, как создать соединение с базой данных MongoDB. Если базы данных нет, MongoDB создаст ее для вас.


import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import java.util.List;
import java.util.Set;
import static java.util.concurrent.TimeUnit.SECONDS;
public class mongodb_connection{
   public static void main( String args[] ){
      try{   
		MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
		System.out.println("Database Connection Successful!");
        DB db = mongoClient.getDB( "testdb" );
	    }catch(Exception e){
	     System.err.println( e.getClass().getName() + ": " + e.getMessage() );
	  }
   }
}

Выход :

 F: / java-mongodb> javac mongodb_connection.java
F: / java-mongodb> java mongodb_connection
Подключение к базе данных успешно! 

Вставить документ

Когда у вас есть объект коллекции, вы можете вставить документы в коллекцию. Например, давайте создадим студенческий документ, который в JSON будет представлен как:


{ 
  "name"   : "Arun",
  "class"  : 'V',
  "rollno" : 1
}  

Здесь мы использовали класс BasicDBObject для создания документа, а затем просто вставляем его в коллекцию, используя метод insert ().

Код:


import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;
public class mongodb_connection_insert{
   public static void main( String args[] ){
      try{   
		MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
		DB db = mongoClient.getDB( "testdb" );
		System.out.println("Database Connection Successful!");
		DBCollection collec = db.getCollection("stucollec");
        BasicDBObject doc = new BasicDBObject("student", "testdb")
        .append("name", "Arun")
        .append("class", 'V')
		.append("rollno", 1);
collec.insert(doc);
 System.out.println("Document is inserted successfully");
	    }catch(Exception e){
	     System.err.println( e.getClass().getName() + ": " + e.getMessage() );
	  }
   }
}

Выход :

 F: / java-mongodb> java mongodb_connection_insert
Подключение к базе данных успешно!
Документ успешно вставлен

Найти документ

Чтобы показать или найти документ просто, используйте операцию findOne (), чтобы получить первый документ в коллекции. Этот метод возвращает один документ, и он полезен для вещей, где есть только один документ или вас интересует только первый.

Код:

import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;
public class mongodb_connection_find_document{
   public static void main( String args[] ){
      try{   
		MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
		DB db = mongoClient.getDB( "testdb" );
		System.out.println("Database Connection Successful!");
		DBCollection collec = db.getCollection("stucollec");
    	DBObject myDoc = collec.findOne();
        System.out.println(myDoc);
        }catch(Exception e){
	     System.err.println( e.getClass().getName() + ": " + e.getMessage() );
	  }
   }
} 

Выход :

 F: / java-mongodb> java mongodb_connection_find_document
Подключение к базе данных успешно!
{"_id": {"$ oid": "54897b3309b478e666780749"}, "student": "testdb", "name": "Arun", "class": "V", "rollno": 1}

Давайте вставим еще две записи:

{ 
  "name"   : "David",
  "class"  : 'V',
  "rollno" : 2
}
{ 
  "name"   : "Shekhar",
  "class"  : 'V',
  "rollno" : 3
}

Использование курсора для извлечения всех документов

Чтобы получить все документы в коллекции, мы использовали метод find (). Метод find () возвращает объект DBCursor, который позволяет нам перебирать набор документов, соответствующих нашему запросу. Итак, чтобы запросить все документы и распечатать их:

Код:

import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;
public class mongodb_connection_find_all_documents{
   public static void main( String args[] ){
      try{   
		MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
		DB db = mongoClient.getDB( "testdb" );
		DBCollection collec = db.getCollection("stucollec");
		DBCursor cursor = collec.find();
        try {
          while(cursor.hasNext()) {
          System.out.println(cursor.next());
         }
         } finally {
           cursor.close();
             }
        }catch(Exception e){
	     System.err.println( e.getClass().getName() + ": " + e.getMessage() );
	  }
   }
}
 

Выход :

 F: / java-mongodb> javac mongodb_connection_find_all_documents.java
F: / java-mongodb> java mongodb_connection_find_all_documents
{"_id": {"$ oid": "54897b3309b478e666780749"}, "student": "testdb", "name": "Arun", "class": "V", "rollno": 1}
{"_id": {"$ oid": "5489890c09b4351818c6e73f"}, "student": "testdb", "name": "David", "class": "V", "rollno": 2}
{"_id": {"$ oid": "54898b4309b45fce267b9fbe"}, "student": "testdb", "name": "Shekhar", "class": "V", "rollno": 3}
 

Запрос одного документа

Мы можем создать запрос для передачи в метод find (), чтобы получить подмножество документов в нашей коллекции. Например, если бы мы хотели найти документ, для которого значение поля "rollno" равно 2, мы бы сделали следующее;

Код:


import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;
public class mongodb_connection_single_document_query{
   public static void main( String args[] ){
      try{   
		MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
		DB db = mongoClient.getDB( "testdb" );
		DBCollection collec = db.getCollection("stucollec");
		BasicDBObject query = new BasicDBObject("rollno", 2);
		DBCursor cursor = collec.find();
        cursor = collec.find(query);
         try {
          while(cursor.hasNext()) {
          System.out.println(cursor.next());
          }
            } finally {
         cursor.close();
        }
        }catch(Exception e){
	     System.err.println( e.getClass().getName() + ": " + e.getMessage() );
	  }
   }
}

Выход :

 F: / java-mongodb> javac mongodb_connection_single_document_query.java
F: / java-mongodb> java mongodb_connection_single_document_query
{"_id": {"$ oid": "5489890c09b4351818c6e73f"}, "student": "testdb", "name": "David", "class": "V", "rollno": 2}

Запрос нескольких документов

Мы можем использовать запрос, чтобы получить набор документов из нашей коллекции. Например, если вы хотите получить все документы, где «rollno»> = 2, мы можем написать:

Код:


import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;
public class mongodb_connection_multiple_documents_query{
   public static void main( String args[] ){
      try{   
		MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
		DB db = mongoClient.getDB( "testdb" );
		DBCollection collec = db.getCollection("stucollec");
		// find all where rollno>=2
        BasicDBObject  query = new BasicDBObject("rollno", new BasicDBObject("$gte", 2));
	    DBCursor cursor = collec.find(query);
try {
    while (cursor.hasNext()) {
        System.out.println(cursor.next());
    }
} finally {
    cursor.close();
}
        }catch(Exception e){
	     System.err.println( e.getClass().getName() + ": " + e.getMessage() );
	  }
   }
}

Выход :

 F: / java-mongodb> javac mongodb_connection_multiple_documents_query.java
F: / java-mongodb> java mongodb_connection_multiple_documents_query
{"_id": {"$ oid": "5489890c09b4351818c6e73f"}, "student": "testdb", "name": "David", "class": "V", "rollno": 2}
{"_id": {"$ oid": "54898b4309b45fce267b9fbe"}, "student": "testdb", "name": "Shekhar", "class": "V", "rollno": 3}
 

Обновить документ

Следующая программа показывает, как использовать $ set в java-программе для обновления одного соответствующего документа.

Код:


import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import com.mongodb.WriteResult;
import java.util.Arrays;
public class mongodb_connection_update_document{
   public static void main( String args[] ){
      try{   
		MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
		DB db = mongoClient.getDB( "testdb" );
		DBCollection collec = db.getCollection("stucollec");
		
		DBObject query = new BasicDBObject("name", "Shekhar");
        DBObject update = new BasicDBObject();
        update.put("$set", new BasicDBObject("rollno", 13));
         
        WriteResult result = collec.update(query, update);
         
       	DBCursor cursor = collec.find();
        try {
          while(cursor.hasNext()) {
          System.out.println(cursor.next());
         }
         } finally {
           cursor.close();
             }
      }catch(Exception e){
	     System.err.println( e.getClass().getName() + ": " + e.getMessage() );
	  }
   }
}

Выход :

 F: / java-mongodb> javac mongodb_connection_update_document.java
F: / java-mongodb> java mongodb_connection_update_document
{"_id": {"$ oid": "54897b3309b478e666780749"}, "student": "testdb", "name": "Arun", "class": "V", "rollno": 1}
{"_id": {"$ oid": "5489890c09b4351818c6e73f"}, "student": "testdb", "name": "David", "class": "V", "rollno": 2}
{"_id": {"$ oid": "54898b4309b45fce267b9fbe"}, "student": "testdb", "name": "Shekhar", "class": "V", "rollno": 13}

Удалить документ

Следующая программа показывает, как удалить один соответствующий документ.

Код:


import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import com.mongodb.WriteResult;
import java.util.Arrays;
public class mongodb_connection_delete_document{
   public static void main( String args[] ){
      try{   
		MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
		DB db = mongoClient.getDB( "testdb" );
		DBCollection collec = db.getCollection("stucollec");
		DBObject query = new BasicDBObject("rollno", 13);
        WriteResult result = collec.remove(query);
        System.out.println("Number of documents are deleted : " + result.getN());
		DBCursor cursor = collec.find();		
        try {
          while(cursor.hasNext()) {
          System.out.println(cursor.next());
         }
         } finally {
           cursor.close();
             }
      }catch(Exception e){
	     System.err.println( e.getClass().getName() + ": " + e.getMessage() );
	  }
   }
}

Выход :

 F: / java-mongodb> javac mongodb_connection_delete_document.java
F: / java-mongodb> java mongodb_connection_delete_document
Количество документов удалено: 1
{"_id": {"$ oid": "54897b3309b478e666780749"}, "student": "testdb", "name": "Arun", "class": "V", "rollno": 1}
{"_id": {"$ oid": "5489890c09b4351818c6e73f"}, "student": "testdb", "name": "David", "class": "V", "rollno": 2}

Список коллекции

Следующая программа возвращает список доступных коллекций в базе данных:

Примечание. Коллекция system.indexes создается автоматически и содержит список всех индексов в базе данных, и к ней нельзя обращаться напрямую.

Код:


import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import com.mongodb.WriteResult;
import java.util.Arrays;
public class mongodb_connection_list_of_collection{
   public static void main( String args[] ){
      try{   
		MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
		DB db = mongoClient.getDB( "testdb" );
		for (String s : db.getCollectionNames()) {
        System.out.println(s);
		}
        }catch(Exception e){
	     System.err.println( e.getClass().getName() + ": " + e.getMessage() );
	  }
   }
}

Выход :

 F: / java-mongodb> javac mongodb_connection_list_of_collection.java
F: / java-mongodb> java mongodb_connection_list_of_collection
stucollec
system.indexes

Оставить коллекцию

Вы можете удалить коллекцию, используя метод drop ():

Код:


import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import com.mongodb.WriteResult;
import java.util.Arrays;
public class mongodb_connection_drop_a_collection{
   public static void main( String args[] ){
      try{   
		MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
		DB db = mongoClient.getDB( "testdb" );
		DBCollection coll = db.getCollection("stucollec");
        coll.drop();
        System.out.println(db.getCollectionNames());
        }catch(Exception e){
	    System.err.println( e.getClass().getName() + ": " + e.getMessage() );
	  }
   }
}

Выход :

 F: / java-mongodb> javac mongodb_connection_drop_a_collection.java
F: / java-mongodb> java mongodb_connection_drop_a_collection
[system.indexes]

Удалить базу данных

Вы можете удалить коллекцию, используя метод drop ():

Код:


import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import com.mongodb.WriteResult;
import java.util.Arrays;
public class mongodb_connection_drop_a_database{
   public static void main( String args[] ){
      try{   
  	     MongoClient mongoClient = new MongoClient();
         mongoClient.dropDatabase("testdb");
	    for (String s : mongoClient.getDatabaseNames()) {
        System.out.println(s);
        }	  
        }catch(Exception e){
	    System.err.println( e.getClass().getName() + ": " + e.getMessage() );
	  }
   }
}

Выход :

 F: / java-mongodb> javac mongodb_connection_drop_a_database.java
F: / java-mongodb> java mongodb_connection_drop_a_collection
[system.indexes]

Предыдущий: РЕЗЕРВНОЕ КОПИРОВАНИЕ
Далее: ВОДИТЕЛЬ Python

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code