English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java MongoDB

Neste capítulo, vamos aprender como configurar o MongoDB CLIENT.

Instalação

Antes de começar a usar MongoDB em programas Java, é necessário garantir que o MongoDB CLIENT e o Java estejam configurados no computador. Você pode seguir o tutorial Java para instalar o Java no computador. Agora, vamos verificar como configurar o MongoDB CLIENT.

  • Você precisa baixar o jar mongodb-driver-3.11.2.jar e suas dependências mongodb-driver-core-3.11.2.jar.Certifique-se de baixar as versões mais recentes desses arquivos jar.

  • Você precisa incluir o arquivo jar baixado no caminho da classe.

Conectar ao banco de dados

Para conectar ao banco de dados, você precisa especificar o nome do banco de dados. Se o banco de dados não existir, o MongoDB criará automaticamente.

A seguir está o trecho de código para conectar ao banco de dados-

import com.mongodb.client.MongoDatabase; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class ConnectToDB { 
   
   public static void main(String args[]) {  
      
      // Criar um cliente MongoDB 
      MongoClient mongo = new MongoClient("localhost", 27017 ; 
   
      // Criar credenciais 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("Conectado ao banco de dados com sucesso");  
      
      // Acessar o banco de dados 
      MongoDatabase database = mongo.getDatabase("myDb"); 
      System.out.println("Credentials ::"+ credential);     
   } 
}

Agora, vamos compilar e executar o programa acima para criar o banco de dados myDb, conforme mostrado a seguir.

$javac ConnectToDB.java $java ConnectToDB

Após a execução, o programa acima fornecerá a seguinte saída.

Conectado com sucesso ao banco de dados Credentials :: MongoCredential{
   mechanism = null, 
   userName = 'sampleUser', 
   source = 'myDb', 
   password = <oculto>, 
   mechanismProperties = {}

Criar coleção

Para criar uma coleção, use o método createCollection () da classe com.mongodb.client.MongoDatabase.

A seguir está o trecho de código para criar a coleção-

import com.mongodb.client.MongoDatabase; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class CreatingCollection { 
   
   public static void main(String args[]) {  
      
      // Criar um cliente MongoDB 
      MongoClient mongo = new MongoClient("localhost", 27017 ; 
     
      // Criar credenciais 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("Conectado ao banco de dados com sucesso");  
      
      //Acessar o banco de dados 
      MongoDatabase database = mongo.getDatabase("myDb");  
      
      //Criar coleção 
      database.createCollection("sampleCollection"); 
      System.out.println("Criado com sucesso a coleção"); 
   } 
}

No tempo de compilação, o programa acima fornece os seguintes resultados-

Conectado com sucesso ao banco de dados, criado com sucesso a coleção

Obter/Selecionar a coleção

Para obter do banco de dados/Para selecionar uma coleção, é necessário usar o método getCollection () da classe com.mongodb.client.MongoDatabase.

A seguir está/Programa para selecionar a coleção-

import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoDatabase; 
import org.bson.Document; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class selectingCollection { 
   
   public static void main(String args[]) {  
      
      // Criar um cliente MongoDB 
      MongoClient mongo = new MongoClient("localhost", 27017 ; 
     
      // Criar credenciais 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("Conectado ao banco de dados com sucesso");  
      
      // Acessar o banco de dados 
      MongoDatabase database = mongo.getDatabase("myDb");  
      
      // Criar coleção
      System.out.println("Criado com sucesso a coleção"); 
      // Recuperar coleção
      MongoCollection<Document> collection = database.getCollection("myCollection"); 
      System.out.println("Selecionado com sucesso a coleção myCollection"); 
   }
}

No tempo de compilação, o programa acima fornece os seguintes resultados-

Conectado com sucesso ao banco de dados, criado com sucesso a coleção, selecionado com sucesso a coleção myCollection

Inserir documento

Para inserir um documento no MongoDB, é necessário usar o método insert () da classe com.MongoDB.client.MongoCollection.

A seguir está o trecho de código para inserir documento-

import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import com.mongodb.MongoClient;
public class InsertingDocument {
	public static void main(String args[]) {
	// Criar um cliente MongoDB
	MongoClient mongo = new MongoClient("localhost", 27017 ;
	// Acessar o banco de dados
	MongoDatabase database = mongo.getDatabase("myDb");
	// Criar coleção
	database.createCollection("sampleCollection");
	System.out.println("Criado com sucesso a coleção");
	// Recuperar coleção
	MongoCollection<Document> collection = database.getCollection("sampleCollection");
	System.out.println("Selecionado com sucesso a coleção sampleCollection");
	Document document = new Document("title", "MongoDB")
	.append("description", "database")
	.append("likes", 100)
	.append("url", "http://pt.oldtoolbag.com/mongodb/")
	.append("by", "oldtoolbag.com");
	//Inserir documento na coleção
	collection.insertOne(document);
	System.out.println("Documento inserido com sucesso");
}

No tempo de compilação, o programa acima fornece os seguintes resultados-

Conectado com sucesso ao banco de dados Conectado com sucesso na coleção sampleCollection Documento inserido com sucesso

Recuperar todos os documentos

Para selecionar todos os documentos do conjunto, usecom.mongodb.client.MongoCollection da classefind()MétodoEste método retorna um cursor, portanto, você precisa iterar sobre ele.

A seguir está o programa para selecionar todos os documentos-

import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
public class RetrievingAllDocuments {
	public static void main(String args[]) {
		// Criar um cliente MongoDB
		MongoClient mongo = new MongoClient("localhost", 27017 ;
		// Criar credenciais
		MongoCredential credential;
		credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray());
		System.out.println("Conectado ao banco de dados com sucesso");
		// Acessar o banco de dados
		MongoDatabase database = mongo.getDatabase("myDb");
		// Recuperar coleção
		MongoCollection<Document> collection = database.getCollection("sampleCollection");
		System.out.println("Selecionado com sucesso a coleção sampleCollection");
		Document document1 = new Document("title", "MongoDB")
		.append("description", "database")
		.append("likes", 100)
		.append("url", "http://pt.oldtoolbag.com/mongodb/")
		.append("by", "oldtoolbag.com");
		Document document2 = new Document("title", "RethinkDB")
		.append("description", "database")
		.append("likes", 200)
		.append("url", "http://pt.oldtoolbag.com/rethinkdb/")
		.append("by", "oldtoolbag.com");
		List<Document> list = new ArrayList<Document>();
		list.add(document1;
		list.add(document2;
		collection.insertMany(list);
		// Obter objeto iterável
		FindIterable<Document> iterDoc = collection.find();
		int i = 1;
		// Obter iterador
		Iterator it = iterDoc.iterator();
		while (it.hasNext()) {
			System.out.println(it.next());
			i++;
		}
	}
}

No tempo de compilação, o programa acima fornece os seguintes resultados-

Conectado com sucesso ao banco de dados Conectado com sucesso na coleção sampleCollection{{_id=5dce4e9ff68a9c2449e197b2, title=MongoDB, description=banco de dados, likes=100, url=http://pt.oldtoolbag.com/mongodb/, by=oldtoolbag.com}}Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=http://pt.oldtoolbag.com/rethinkdb/, by=oldtoolbag.com}}

Atualizar documento

Para atualizar um documento no conjunto, usecom.mongodb.client.MongoCollection classupdateOne()}Método.

A seguir está o programa de seleção do primeiro documento-

import com.mongodb.client.FindIterable; 
import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoDatabase; 
import com.mongodb.client.model.Filters; 
import com.mongodb.client.model.Updates; 
import java.util.Iterator; 
import org.bson.Document;  
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class UpdatingDocuments { 
   
   public static void main(String args[]) {  
      
      // Criar um cliente MongoDB 
      MongoClient mongo = new MongoClient("localhost", 27017 ; 
     
      // Criar credenciais 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("Conectado ao banco de dados com sucesso");  
      
      // Acessar o banco de dados 
      MongoDatabase database = mongo.getDatabase("myDb"); 
      // Recuperar coleção 
      MongoCollection<Document> collection = database.getCollection("sampleCollection");
      System.out.println("Selecionado com sucesso a coleção myCollection"); 
      collection.updateOne(Filters.eq("title", 1), Updates.set("likes", 150));       
      System.out.println("Atualização de documento bem-sucedida...");  
      
      // Recuperar documento após atualização 
      // Obter objeto iterável
      FindIterable<Document> iterDoc = collection.find(); 
      int i = 1; 
      // Obter iterador 
      Iterator it = iterDoc.iterator(); 
      while (it.hasNext()) {  
         System.out.println(it.next());  
         i++; 
      }     
   }  
}

No tempo de compilação, o programa acima fornece os seguintes resultados-

Conectado com sucesso ao banco de dados Selecionado com sucesso a coleção myCollection Atualização de documento bem-sucedida...Document{{_id=5dce4e9ff68a9c2449e197b2, title=MongoDB, description=banco de dados, likes=100, url=http://pt.oldtoolbag.com/mongodb/, by=oldtoolbag.com}}Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=http://pt.oldtoolbag.com/rethinkdb/, by=oldtoolbag.com}}

Excluir documento

Para excluir documentos da coleção, você precisa usar a classecom.mongodb.client.MongoCollectiondodeleteOne()Método.

A seguir está o programa de exclusão de documentos-

import com.mongodb.client.FindIterable; 
import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoDatabase; 
import com.mongodb.client.model.Filters;  
import java.util.Iterator; 
import org.bson.Document; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class DeletingDocuments { 
   
   public static void main(String args[]) {  
   
      // Criar um cliente MongoDB 
      MongoClient mongo = new MongoClient("localhost", 27017 ;
      
      // Criar credenciais 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("Conectado ao banco de dados com sucesso");  
      
      // Acessar o banco de dados 
      MongoDatabase database = mongo.getDatabase("myDb"); 
      // Recuperar coleção
      MongoCollection<Document> collection = database.getCollection("sampleCollection");
      System.out.println("Selecionado com sucesso a coleção sampleCollection"); 
      // Excluir arquivo 
      collection.deleteOne(Filters.eq("title", "MongoDB")); 
      System.out.println("Exclusão de documento bem-sucedida...");  
      
      // Recuperar documento após atualização 
      // Obter objeto iterável 
      FindIterable<Document> iterDoc = collection.find(); 
      int i = 1; 
      // Obter iterador 
      Iterator it = iterDoc.iterator(); 
      while (it.hasNext()) {  
         System.out.println(it.next());  
         i++; 
      }       
   } 
}

No tempo de compilação, o programa acima fornece os seguintes resultados-

Conectado com sucesso ao banco de dados Selecionado com sucesso a coleção sampleCollection Exclusão de documento bem-sucedida...Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=http://pt.oldtoolbag.com/rethinkdb/, by=oldtoolbag.com}}

Remover coleção

Para remover a coleção do banco de dados, você precisa usar a classecom.mongodb.client.MongoCollectiondodrop()Método.

Aqui está o programa para remover a coleção-

import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoDatabase;  
import org.bson.Document;  
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class DropingCollection { 
   
   public static void main(String args[]) {  
      // Criar um cliente MongoDB 
      MongoClient mongo = new MongoClient("localhost", 27017 ; 
      // Criar credenciais 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("Conectado ao banco de dados com sucesso");  
      
      // Acessar o banco de dados 
      MongoDatabase database = mongo.getDatabase("myDb");  
      
      // Criar coleção
      System.out.println("Criado com sucesso a coleção"); 
      // Recuperar coleção
      MongoCollection<Document> collection = database.getCollection("sampleCollection");
      // Remover coleção 
      collection.drop(); 
      System.out.println("Removido com sucesso a coleção");
   } 
}

No tempo de compilação, o programa acima fornece os seguintes resultados-

Conectado com sucesso ao banco de dados Collection sampleCollection selecionado com sucesso Removido com sucesso a coleção

Listar todas as coleções

Para listar todas as coleções do banco de dados, você precisa usar a classedo com.mongodb.client.MongoDatabaselistCollectionNames()Método.

Aqui está o programa para listar todas as coleções do banco de dados-

import com.mongodb.client.MongoDatabase; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class ListOfCollection { 
   
   public static void main(String args[]) {  
      
      // Criar um cliente MongoDB 
      MongoClient mongo = new MongoClient("localhost", 27017 ; 
      // Criar credenciais 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("Conectado ao banco de dados com sucesso");  
      
      // Acessar o banco de dados 
      MongoDatabase database = mongo.getDatabase("myDb"); 
      System.out.println("Criado com sucesso a coleção"); 
      for (String name : database.listCollectionNames()) { 
         System.out.println(name); 
      } 
   }
}

No tempo de compilação, o programa acima fornece os seguintes resultados-

Conectado ao banco de dados com sucesso Criado com sucesso a coleção myCollection myCollection1 myCollection5

O funcionamento dos métodos restantes do MongoDB save ()、 limit ()、 skip ()、 sort () e outros é explicado nos tutoriais subsequentes.