English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este capítulo, aprenderemos cómo configurar el CLIENTE de MongoDB.
Antes de comenzar a usar MongoDB en programas Java, es necesario asegurarse de que MongoDB CLIENT y Java estén configurados en la computadora. Puede seguir el tutorial de Java para instalar Java en la computadora. Ahora, veamos cómo configurar el CLIENTE de MongoDB.
Debe descargar el jar mongodb-driver-3.11.2.jar y sus dependencias mongodb-driver-core-3.11.2.jar.
Asegúrese de descargar las últimas versiones de estos archivos jar.
Debe incluir el archivo jar descargado en la ruta de la clase.
Para conectarse a la base de datos, debe especificar el nombre de la base de datos, si la base de datos no existe, MongoDB la creará automáticamente.
A continuación se muestra el fragmento de código para conectarse a la base de datos-
import com.mongodb.client.MongoDatabase; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; public class ConnectToDB { public static void main(String args[]) { // 创建一个Mongo客户端 MongoClient mongo = new MongoClient("localhost", 27017 ); // 创建凭证 MongoCredential credential; credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); System.out.println("Se ha conectado con éxito a la base de datos"); // Acceso a la base de datos MongoDatabase database = mongo.getDatabase("myDb"); System.out.println("Credentials ::"+ credential); } }
Ahora, compilamos y ejecutamos el programa anterior para crear la base de datos myDb, como se muestra a continuación.
$javac ConnectToDB.java $java ConnectToDB
Después de ejecutar, el programa anterior le proporcionará la siguiente salida.
Se ha conectado con éxito a la base de datos Credentials :: MongoCredential{ mechanism = null, userName = 'sampleUser', source = 'myDb', password = <oculto>, mechanismProperties = {}
Para crear una colección, se debe utilizar el método createCollection () de la clase com.mongodb.client.MongoDatabase.
A continuación se muestra el fragmento de código para crear la colección-
import com.mongodb.client.MongoDatabase; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; public class CreatingCollection { public static void main(String args[]) { // 创建一个Mongo客户端 MongoClient mongo = new MongoClient("localhost", 27017 ); // 创建凭证 MongoCredential credential; credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); System.out.println("Se ha conectado con éxito a la base de datos"); //Acceso a la base de datos MongoDatabase database = mongo.getDatabase("myDb"); //创建集合 database.createCollection("sampleCollection"); System.out.println("Se ha creado con éxito la colección"); } }
En la compilación, el programa anterior le proporciona los siguientes resultados-
Se ha conectado con éxito a la base de datos, se ha creado con éxito la colección
Para obtener de la base de datos/Para seleccionar una colección, se debe utilizar el método getCollection () de la clase com.mongodb.client.MongoDatabase.
A continuación se muestra/Programa para seleccionar colección-
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[]) { // 创建一个Mongo客户端 MongoClient mongo = new MongoClient("localhost", 27017 ); // 创建凭证 MongoCredential credential; credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); System.out.println("Se ha conectado con éxito a la base de datos"); // Acceso a la base de datos MongoDatabase database = mongo.getDatabase("myDb"); // 创建集合 System.out.println("Se ha creado con éxito la colección"); // 检索集合 MongoCollection<Document> collection = database.getCollection("myCollection"); System.out.println("Se ha seleccionado con éxito la colección myCollection"); } }
En la compilación, el programa anterior le proporciona los siguientes resultados-
Se ha conectado con éxito a la base de datos, se ha creado con éxito la colección, se ha seleccionado con éxito la colección myCollection
Para insertar un documento en MongoDB, es necesario utilizar el método insert () de la clase com.MongoDB.client.MongoCollection.
A continuación se muestra el fragmento de código para insertar documentos-
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[]) { // 创建一个Mongo客户端 MongoClient mongo = new MongoClient("localhost", 27017 ); // Acceso a la base de datos MongoDatabase database = mongo.getDatabase("myDb"); // 创建集合 database.createCollection("sampleCollection"); System.out.println("Se ha creado con éxito la colección"); // 检索集合 MongoCollection<Document> collection = database.getCollection("sampleCollection"); System.out.println("Se ha seleccionado con éxito la colección sampleCollection"); Document document = new Document("title", "MongoDB") .append("description", "database") .append("likes", 100) .append("url", "http://es.oldtoolbag.com/mongodb/") .append("by", "oldtoolbag.com"); //Insertar documento en la colección collection.insertOne(document); System.out.println("Inserto de documento exitoso"); }
En la compilación, el programa anterior le proporciona los siguientes resultados-
Se ha conectado con éxito a la base de datos Se ha seleccionado con éxito la colección sampleCollection Inserto de documento exitoso
Para seleccionar todos los documentos de la colección, utilicecom.mongodb.client.MongoCollection
de clase
。此方法返回一个游标,因此您需要迭代此游标。
方法find()
A continuación se muestra el programa para seleccionar todos los 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[]) { // 创建一个Mongo客户端 MongoClient mongo = new MongoClient("localhost", 27017 ); // 创建凭证 MongoCredential credential; credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); System.out.println("Se ha conectado con éxito a la base de datos"); // Acceso a la base de datos MongoDatabase database = mongo.getDatabase("myDb"); // 检索集合 MongoCollection<Document> collection = database.getCollection("sampleCollection"); System.out.println("Se ha seleccionado con éxito la colección sampleCollection"); Document document1 = new Document("title", "MongoDB") .append("description", "database") .append("likes", 100) .append("url", "http://es.oldtoolbag.com/mongodb/") .append("by", "oldtoolbag.com"); Document document2 = new Document("title", "RethinkDB") .append("description", "database") .append("likes", 200) .append("url", "http://es.oldtoolbag.com/rethinkdb/") .append("by", "oldtoolbag.com"); List<Document> list = new ArrayList<Document>(); list.add(document1); list.add(document2); collection.insertMany(list); // Obtener objeto iterable FindIterable<Document> iterDoc = collection.find(); int i = 1; // Obtener iterador Iterator it = iterDoc.iterator(); while (it.hasNext()) { System.out.println(it.next()); i++; } } }
En la compilación, el programa anterior le proporciona los siguientes resultados-
Se ha conectado con éxito a la base de datos Se ha seleccionado con éxito la colección sampleCollection{{_id=5dce4e9ff68a9c2449e197b2, title=MongoDB, description=database, likes=100, url=http://es.oldtoolbag.com/mongodb/, by=oldtoolbag.com}}Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=http://es.oldtoolbag.com/rethinkdb/, by=oldtoolbag.com}}
Para actualizar un documento en la colección, utilicecom.mongodb.client.MongoCollection de clase
。
方法updateOne()}
A continuación se muestra el programa para seleccionar el primer 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[]) { // 创建一个Mongo客户端 MongoClient mongo = new MongoClient("localhost", 27017 ); // 创建凭证 MongoCredential credential; credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); System.out.println("Se ha conectado con éxito a la base de datos"); // Acceso a la base de datos MongoDatabase database = mongo.getDatabase("myDb"); // 检索集合 MongoCollection<Document> collection = database.getCollection("sampleCollection"); System.out.println("Se ha seleccionado con éxito la colección myCollection"); collection.updateOne(Filters.eq("title", 1), Updates.set("likes", 150)); System.out.println("Actualización de documento exitosa..."); // Búsqueda de documentos después de la actualización // Obtener objeto iterable FindIterable<Document> iterDoc = collection.find(); int i = 1; // Obtener iterador Iterator it = iterDoc.iterator(); while (it.hasNext()) { System.out.println(it.next()); i++; } } }
En la compilación, el programa anterior le proporciona los siguientes resultados-
Se ha conectado con éxito a la base de datos Se ha seleccionado con éxito la colección myCollection Actualización de documento exitosa...Document{{_id=5dce4e9ff68a9c2449e197b2, title=MongoDB, description=database, likes=100, url=http://es.oldtoolbag.com/mongodb/, by=oldtoolbag.com}}Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=http://es.oldtoolbag.com/rethinkdb/, by=oldtoolbag.com}}
Para eliminar documentos de una colección, debe usar la clasecom.mongodb.client.MongoCollection
的
方法。deleteOne()
A continuación se muestra el programa para eliminar 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[]) { // 创建一个Mongo客户端 MongoClient mongo = new MongoClient("localhost", 27017 ); // 创建凭证 MongoCredential credential; credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); System.out.println("Se ha conectado con éxito a la base de datos"); // Acceso a la base de datos MongoDatabase database = mongo.getDatabase("myDb"); // 检索集合 MongoCollection<Document> collection = database.getCollection("sampleCollection"); System.out.println("Se ha seleccionado con éxito la colección sampleCollection"); // Eliminar archivo collection.deleteOne(Filters.eq("title", "MongoDB")); System.out.println("Eliminación de documento exitosa..."); // Búsqueda de documentos después de la actualización // Obtener objeto iterable FindIterable<Document> iterDoc = collection.find(); int i = 1; // Obtener iterador Iterator it = iterDoc.iterator(); while (it.hasNext()) { System.out.println(it.next()); i++; } } }
En la compilación, el programa anterior le proporciona los siguientes resultados-
Se ha conectado con éxito a la base de datos Se ha seleccionado con éxito la colección sampleCollection Eliminación de documento exitosa...Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=http://es.oldtoolbag.com/rethinkdb/, by=oldtoolbag.com}}
要从数据库中删除集合,您需要使用类com.mongodb.client.MongoCollection
的
方法。drop()
以下是删除集合的程序-
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[]) { // 创建一个Mongo客户端 MongoClient mongo = new MongoClient("localhost", 27017 ); // 创建凭证 MongoCredential credential; credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); System.out.println("Se ha conectado con éxito a la base de datos"); // Acceso a la base de datos MongoDatabase database = mongo.getDatabase("myDb"); // 创建集合 System.out.println("Se ha creado con éxito la colección"); // 检索集合 MongoCollection<Document> collection = database.getCollection("sampleCollection"); // 删除集合 collection.drop(); System.out.println("已成功删除集合"); } }
En la compilación, el programa anterior le proporciona los siguientes resultados-
已成功连接到数据库 Collection sampleCollection selected successfully 已成功删除集合
要列出数据库中的所有集合,您需要使用类com.mongodb.client.MongoDatabase的
。
方法listCollectionNames()
以下是列出数据库的所有集合的程序-
import com.mongodb.client.MongoDatabase; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; public class ListOfCollection { public static void main(String args[]) { // 创建一个Mongo客户端 MongoClient mongo = new MongoClient("localhost", 27017 ); // 创建凭证 MongoCredential credential; credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); System.out.println("Se ha conectado con éxito a la base de datos"); // Acceso a la base de datos MongoDatabase database = mongo.getDatabase("myDb"); System.out.println("Se ha creado con éxito la colección"); for (String name : database.listCollectionNames()) { System.out.println(name); } } }
En la compilación, el programa anterior le proporciona los siguientes resultados-
Se ha conectado con éxito a la base de datos Se ha creado con éxito la colección myCollection myCollection1 myCollection5
El funcionamiento de los métodos restantes de MongoDB save ()、 limit ()、 skip ()、 sort () y otros es el mismo que se explica en los tutoriales posteriores.