Documento de consultas de MongoDB

MongoDB es una base de datos NoSQL (no solo SQL) porque el almacenamiento y la recuperación de datos en MongoDB no están en forma de tablas como en SQL. Almacena datos en una estructura BSON. Utiliza el formato de datos BSON o Binary JSON para organizar y almacenar datos. Este formato de datos incluye todos los tipos de datos JSON y agrega tipos para fechas, números enteros de diferentes tamaños, ID de objetos y datos binarios. En MongoDB, una base de datos es un contenedor físico para las colecciones. Contiene una o más colecciones. Un servidor MongoDB tiene múltiples bases de datos en su interior. Una base de datos almacena datos en la colección. Una colección es un grupo de uno o más documentos que existe dentro de una única base de datos. Una sola colección contiene diferentes tipos de documentos, lo que significa que si un documento contiene 10 campos, otro documento dentro de la misma colección puede contener 20 campos. En este articulo, discutiremos el concepto básico de los servidores MongoDB como bases de datos, colecciones y documentos y nos centraremos principalmente en las consultas básicas de base de datos y colección de MongoDB con la ayuda de ejemplos. Este artículo le brindará un inicio rápido con MongoDB y lo hará sentir cómodo con las consultas de MongoDB.

MOSTRAR declaración

Se utiliza para mostrar todas las bases de datos presentes en el servidor MongoDB. No le mostrará la base de datos recién creada hasta que le agregue una colección. Si desea verificar la base de datos seleccionada actualmente, puede usar el comando db.

Sintaxis:

mostrar bases de datos;

Ejemplo:

Cuando ejecuta el comando show databases, le mostrará todas las bases de datos presentes en MongoDB, excepto las bases de datos que no tienen ninguna colección. En este ejemplo, company, myDatabase, test y university son las bases de datos definidas por el usuario, y admin, config y local son bases de datos integradas. Es importante insertar una colección en la base de datos para mostrarla en el comando show databases. 

Show-database

 

 

Declaración de base de datos

Se utiliza para mostrar la base de datos actualmente seleccionada. Si la base de datos no contiene ninguna colección, el comando show databases no mostrará esa base de datos en la lista. Entonces, para verificar qué base de datos estamos usando, debe usar este comando.

Sintaxis:

base de datos;

Ejemplo:

En este ejemplo, hemos creado una base de datos llamada universidad usando el comando use. Después de eso, ejecutamos el comando show databases para verificar la lista de bases de datos en MongoDb pero no hay ninguna base de datos universitaria presente en MongoDB. La razón es que la base de datos de la universidad no contiene ninguna colección. Entonces, para verificar la base de datos seleccionada actualmente, use el comando db. 

using-db-command

 

Declaración de USO

Se usa para crear la nueva base de datos y cambiar a ella si la base de datos no existe en el servidor MongoDB o si la base de datos existe, use el comando para cambiar a la base de datos existente.

Nota: Después de crear una nueva base de datos, si muestra las bases de datos, no le mostrará la base de datos recién creada hasta que le agregue una colección. Si desea verificar la base de datos seleccionada actualmente, puede usar el comando db.

Sintaxis:

use <nombre_de_la_base_de_datos>;

<database_name> es el nombre de la base de datos. El nombre de la base de datos debe cumplir con la convención de nomenclatura del nombre de la base de datos del servidor MongoDB. 

Ejemplo:

usar universidad;

En este ejemplo, hemos creado una nueva base de datos llamada universidad usando el comando use. También cambiará a la base de datos de la universidad. Puede verificar la base de datos seleccionada actualmente usando el comando db y obtendrá la universidad en este ejemplo.

Using-the-use-statement

 

Declaración DROP

Se utiliza para descartar/eliminar la base de datos de MongoDB. Para eliminar la base de datos, primero debe cambiar a la base de datos que desea eliminar utilizando el comando use y luego llamando al método dropDatabase() en la base de datos seleccionada. 

Sintaxis:

use <nombre-de-la-base-de-datos>;
base de datos;
db.dropDatabase();

Ejemplo: 

usar universidad;
base de datos;
db.dropDatabase();

En este ejemplo, estamos usando el comando use para cambiar a la base de datos que queremos eliminar del servidor MongoDb. Después de usar el comando use, verifique la base de datos actual para asegurarse de que la base de datos se cambie correctamente usando el comando db. Después de cambiar a la base de datos, use el método dropDatabase() en la base de datos seleccionada.

Drop-statement

 

MOSTRAR declaración

Se utiliza para mostrar todas las colecciones presentes en la base de datos seleccionada. 

Sintaxis: 

base de datos;
mostrar colecciones;

Ejemplo:

Aquí, primero seleccionamos la base de datos cuya lista de colecciones desea verificar usando el comando db y luego ejecutamos el comando show collections para verificar la lista de la colección presente en la base de datos seleccionada.

Show-collection

 

Declaración CREAR

Esta declaración se utiliza para crear una colección dentro de la base de datos seleccionada. El método createCollection() tomará el nombre de la colección como argumento. El nombre de la colección no debe ser una string nula o vacía, de lo contrario, generará un error.  

Sintaxis:

db.createCollection(“<nombre_de_la_colección>”);

<nombre_de_la_colección> es el nombre de la colección. El nombre de la colección debe cumplir con la convención de nomenclatura del nombre de la colección MongoDB. 

Ejemplo:

 db.createCollection(“detalles_de_contacto_del_profesor”);

En este ejemplo, estamos creando la colección teacher_contact_details. En primer lugar, ejecute el comando use para cambiar a la base de datos de la universidad en la que desea insertar la colección. Luego verifique la base de datos seleccionada usando el comando db. Después de eso, llame al método createCollection() en la base de datos seleccionada y pase el nombre de la colección como argumento. Para verificar si la colección está insertada o no en la base de datos, ejecute el comando show collections.

Using-create-statement

 

Declaración DROP

Se utiliza para descartar/eliminar la colección de la base de datos seleccionada. También eliminará cualquier índice asociado con la colección eliminada. Para eliminar cualquier colección de la base de datos seleccionada, llame al método drop() en esa colección. Si la colección está presente en la base de datos y se eliminará con éxito, devolverá verdadero. Si la colección no está presente en la base de datos, devolverá falso.

Sintaxis:

db.<nombre_de_la_colección>.drop();

Ejemplo:

db.teacher_contact_details.drop();

En este ejemplo, descartamos la colección llamada teacher_contact_details. Primero, ejecutamos el comando use para cambiar a la base de datos de la universidad y luego verificamos si la base de datos está cambiada o no usando el comando db. Después de eso, usamos el comando show collections para verificar la lista de colecciones y luego llamamos al método drop() en la colección teacher_contact_details. Devuelve verdadera colección de medios, así como todos los índices asociados con ella, se eliminan con éxito.

Drop-collection

 

Encuentra los documentos

Se utiliza para encontrar todos los documentos que cumplen los criterios especificados en la colección seleccionada.   

Sintaxis:

db.<nombre_de_la_colección>.find(<filtro>, <proyección>);

  • <filtro> es un criterio de selección utilizado para seleccionar los documentos. Si queremos todos los documentos de la colección seleccionada, omita el parámetro de filtro o pase un documento vacío ({}).    
  • <proyección> se utiliza para seleccionar campos específicos de la colección para incluirlos en el documento de salida. Para incluir el campo, use 1. ‘_id’ siempre se incluye en el documento de salida, por lo que para excluirlo use _id: 0. 

Nota: La proyección se utiliza para mejorar el rendimiento mediante la optimización de la consulta. Reduce los campos en el documento.

Ejemplo: 

En el siguiente ejemplo, estamos usando el método find() sin parámetros que devuelve todos los documentos de una colección y devuelve todos los campos de los documentos. La siguiente operación devuelve todos los documentos de la colección ‘employee_details’ que está presente en la base de datos de la empresa.

db.empleado_detalles.find(); o db.employee_details.find({});

Using-find-method

 

Buscar primer documento

Se utiliza para encontrar el primer documento que cumple los criterios especificados en la colección seleccionada. Solo devuelve el primer documento de la colección si tenemos más de un documento que coincida con los criterios especificados.

Sintaxis:

db.<nombre_de_la_colección>.findOne(<filtro>, <proyección>);

  • <filtro> es un criterio de selección utilizado para seleccionar el documento. Si pasamos un documento vacío ({}) como filtro, este método devolverá el primer documento de la colección.
  • <proyección> se utiliza para seleccionar campos específicos de la colección para incluirlos en el documento de salida. Para incluir el campo, use 1. ‘_id’ siempre se incluye en el documento de salida, por lo que para excluirlo use _id: 0. 

Ejemplo:

En el siguiente ejemplo, estamos usando el método findOne() sin parámetros que devuelve el primer documento de la colección y devuelve todos los campos del documento.

db.employee_details.findOne() o db.employee_details.findOne({});

Using-findOne-method

 

Buscar y reemplazar documento

Se utiliza para reemplazar el primer documento que cumple con los criterios dados con el documento de reemplazo dado. No se utiliza para actualizar los campos. Por defecto, devolverá el documento original. Para devolver el documento de reemplazo, configure la opción ‘returnNewDocument: true’ en la sección de opciones.

Sintaxis:

db.<nombre_de_la_colección>.findOneAndReplace(
       <filtro>,
       <reemplazo>,
       <opción>
);

  • <filtro> es un criterio de selección utilizado para seleccionar el documento. Si pasamos un documento vacío ({}) como filtro, este método reemplazará el primer documento de la colección.
  • <reemplazo> es un documento de reemplazo que reemplaza el primer documento que se selecciona al coincidir con el filtro especificado.
  • <opción> es opcional.

Ejemplo:

En el siguiente ejemplo, estamos usando el método findOneAndReplace() que se usa para reemplazar el documento que coincide con el filtro especificado con el documento de reemplazo.

db.employee_details.findOneAndReplace(
   {“salario”: 30000}, 
   {“salario”: 40000, 
      “nombre”: {“firstName”: “Rohit”, “lastName”: “Khurana”}, }
   )
;

  • {“salario”: 30000} es el argumento de filtro que coincide con el documento a reemplazar.
  • { «salario»: 40000, «nombre»: {«firstName»: «Rohit», «lastName»: «Khurana»} } es el documento de reemplazo.
  • La siguiente operación coincide con el documento donde el campo de salario es igual a 30000 de la colección ‘employee_details’ y reemplaza este documento con {“salary”: 40000, “name”: {“firstName”: “Rohit”, “lastName”: “Khurana” } }. Devuelve el documento original.

El siguiente es el documento después del reemplazo:

{

  «_identificación»: {

    “$oid”: “629f87d1863729e229a35887”

  },

  “salario”: 40000,

  «nombre»: {

    “nombre”: “Rohit”,

    “apellido”: “Khurana”

  }

}

Using-findOneAndReplace()-method

 

Buscar y eliminar documento

Se utiliza para eliminar el primer documento que coincida con el filtro especificado. Devuelve el documento eliminado si se encuentra la coincidencia; de lo contrario, devuelve nulo.

Sintaxis:

db.<nombre_de_la_colección>.findOneAndDelete(
      <filtro> ,
     <opción>
)

Aquí, <filtro> es un criterio de selección utilizado para seleccionar el documento. Si pasamos un documento vacío ({}) como filtro, este método eliminará el primer documento de la colección.

Ejemplo:

En el siguiente ejemplo, estamos usando el método findOneAndDelete() que se usa para eliminar el primer documento que coincide con el filtro especificado.

db.employee_details.findOneAndDelete({“name.firstName” : “Rohit”});

  • {“name.firstName”: “Rohit”} es el argumento de filtro que coincide con el documento a eliminar.
  • La siguiente operación selecciona el documento donde el campo ‘name.firstName’ es igual a ‘Rohit’ de la colección ‘employee_details’ y luego elimina este documento. Devuelve el documento eliminado. 
Using-findOneAndDelete-method

 

Buscar y actualizar documento

Se utiliza para actualizar el primer documento que coincide con el filtro dado. Devuelve el documento original. Por defecto, devolverá el documento original. Para devolver el documento actualizado, configure la opción ‘returnNewDocument: true’ en la sección de opciones.

Sintaxis: 

db.Students.findOneAndUpdate(
            <filtro>, 
            <actualización>,
            <opción>
)

  • <filtro> es un criterio de selección utilizado para seleccionar el documento. Si pasamos un documento vacío ({}) como filtro, este método actualizará el primer documento de la colección.
  • <update> es un documento de actualización o canalización de agregación.
  • <opción> es opcional

Ejemplo: 

En el siguiente ejemplo, estamos usando el método findOneAndUpdate() que se usa para actualizar el documento que coincide con el filtro especificado.

  •  {“name.firstName”: “Romal”} es el argumento de filtro que coincide con el documento para actualizar.
  • El {$conjunto: {“dirección.teléfono.número”: 9876543210, “salario”: 80000} } especifica el cambio que se aplicará. Utiliza el operador $set para establecer el valor del campo ‘dirección.teléfono.número’ (documento incrustado) en ‘9876543210’ y el campo ‘salario’ en ‘80000’
  • La siguiente operación selecciona el documento donde el campo ‘name.firstName’ es igual a ‘Romal’ de la colección ‘employee_details’ y luego actualiza este documento. Devuelve el documento original.

db.employee_details.findOneAndUpdate(
   {“name.firstName” : “Romal” }, 
  {$set: {“address.phone.number” : 9876543210 , “salary” : 80000}
  }
)

El siguiente es el documento actualizado.

{

 «_identificación»: {

   “$oid”: “629118c67017e180fa9ff11e”

 },

 «nombre»: {

   “firstName”: “Romal”,

   “lastName”: “Singla”

 },

 «Dirección»: {

   «teléfono»: {

     “tipo”: “Inicio”,

     “número”: 9876543210

   }

 },

 “salario”: 80000,

 “doj”: {

   “$fecha”: “2022-05-26T18:30:00Z”

 },

 «habilidades»: [

   «Reaccionar»,

   “MongoDB”,

   «Javascript»

 ]

}

Using-findOneAndUpdate-method

 

Eliminar un documento

Se utiliza para eliminar el primer documento que coincida con el filtro. Solo elimina el primer documento de la colección si tenemos más de un documento que coincida con los criterios especificados.

Sintaxis: 

db.<nombre_de_la_colección>.deleteOne(<filtro>);

Aquí, <filtro> es un documento que especifica los criterios para la eliminación. Si el filtro coincide con más de un documento, el método deleteOne() elimina solo el primer documento.

Ejemplo: 

En el siguiente ejemplo, usamos el método deleteOne() para eliminar el documento donde «name.firstName» es «Rohit». {“name.firstName”: “Rohit”} es el argumento de filtro que coincide con los documentos que se van a eliminar. En este ejemplo, coincide con el documento cuyo nombre.nombre (documento incrustado) es «Rohit».

db.employee_details.deleteOne({“name.firstName” : “Rohit”}); 

La operación anterior devuelve el siguiente documento. Aquí, deleteCount que contiene el número de documentos eliminados

{ «reconocido»: verdadero, «recuento eliminado»: 1}

Using-deleteOne-method

 

Eliminar muchos documentos

Se utiliza para eliminar todos los documentos de la colección que coincidan con el filtro. Si pasamos un documento vacío ({}), el método deleteMany() elimina todos los documentos de la colección. Tenga cuidado al usar este método.

Sintaxis: 

db.<nombre_de_la_colección>.deleteMany(<filtro>)

Aquí <filtro> es un documento que especifica la condición para seleccionar el documento para su eliminación. Si pasa un documento vacío ({}) al método deleteMany(), eliminará todos los documentos de la colección seleccionada.

Ejemplo: 

En el siguiente ejemplo, usamos el método deleteMany() para eliminar todos los documentos que contienen salario: 30000. El {“salario”: 30000} es el argumento de filtro que coincide con los documentos para eliminar. En este ejemplo, coincide con todos los documentos cuyo ‘salario’: 30000.

db.employee_details.deleteMany({“salario”: 30000}); 

La operación anterior devuelve el siguiente documento. Aquí, deleteCount contiene el número de documentos eliminados.

{ «reconocido»: verdadero, «recuento eliminado»: 3}

Using-deleteMany-method

 

Insertar un documento

Se utiliza para insertar un documento dentro de la colección. Llama al método insertOne() en la colección en la que queremos insertar el documento. Si la colección no existe, el método insertOne() crea la colección.
Aquí, el método insertOne() toma un documento como argumento que está en formato de datos BSON.

Sintaxis: 

db.<nombre_de_la_colección>.insertOne(<documento>);

Ejemplo: 

En este ejemplo, estamos creando un documento usando el método insertOne() con 5 campos llamados nombre, dirección, salario, doj, habilidades. El nombre contiene el tipo de objeto, la dirección contiene el documento (documentos integrados), el salario contiene el número, el doj contiene el tipo de fecha, las habilidades contienen el tipo de array. Este documento no contiene el campo ‘_id’. Entonces, MongoDB crea y agrega la clave ‘_id’ y le asigna un valor ObjectId() único.

 db.employee_details.insertOne(
       {
           “name”: {“firstName” : “Rohit”, “lastName” : “Singla”}, “
           address”: {
                phone: { type: “Home”, number: “000-000- 000-7” }
          },
        “salario”: 30000.00,
        “doj”: nueva fecha (’27 de mayo de 2022′),
       “habilidades”: [“Reaccionar”, “MongoDB”, “Javascript”] }
    )
;

La operación anterior devuelve el siguiente documento:

{
       «reconocido»: verdadero,
       «insertedId»: ObjectId («62911cfe7017e180fa9ff122»);
}

Using-insertOne-method

 

Insertar varios documentos

Se utiliza para insertar múltiples documentos dentro de la colección. Llama al método insertMany() en la colección en la que queremos insertar los documentos. Aquí, el método insertMany() toma una array de documentos como argumento que está en formato de datos BSON.

Sintaxis: 

db.<nombre_de_la_colección>.insertMany(
      [
       <documento1>, <documento2>, …
     ]
);

Ejemplo:

En este ejemplo, estamos creando dos documentos usando el método insertMany() con 5 campos llamados ciudad, estado, país, código PIN.
Este documento no contiene el campo ‘_id’. Entonces, MongoDB crea y agrega la clave ‘_id’ y le asigna un valor ObjectId() único.

db.employee_details_contact.insertMany( 
         [
           { 
              «ciudad»: «Hisar», «estado»: «Haryana», 
             «país»: «India», «código PIN»: «656565»
           },
           { 
               «ciudad»: «Gurgaon», “estado”: ​​“Haryana”, 
              “país”: “India”, “código PIN”: “345678”
            },
        ]
);

La operación anterior devuelve el siguiente documento:

{
       «reconocido»: verdadero,
       «insertedIds»: [
               ObjectId («629211cf7017e180fa9ff123»),
               ObjectId («629211cf7017e180fa9ff124»)
       ]
}

Using-insertMany-method

 

Actualizar documento

Se utiliza para modificar el documento o documentos de la colección que satisfacen el filtro. Esto puede actualizar el documento existente, reemplazar completamente el documento existente o también agregar un nuevo documento a la colección. Al usar la opción multi:true, puede actualizar todos los documentos que cumplen la condición como el método updateMany().

Sintaxis: 

db.<nombre_de_la_colección>.update(
        <filtro>,
      <actualización>
)

  • El <filtro> es un documento que especifica los criterios para la actualización.
  • La <actualización> es un documento que especifica el cambio a aplicar.

Ejemplo: 

En el siguiente ejemplo, usamos el método update() para actualizar el campo ‘address.phone.number’ del documento donde «name.firstName» es «Rohit».

  • El {“name.firstName”: “Rohit”} es el argumento de filtro que coincide con los documentos para actualizar. En este ejemplo, coincide con el documento cuyo nombre.nombre (documento incrustado) es «Rohit».
  • El {$set: {“address.phone.number”: “111-111-111-8”} } especifica el cambio que se aplicará. Utiliza el operador $set para establecer el valor del campo ‘dirección.teléfono.número’ (documento incrustado) en «111-111-111-8».

db.employee_details.update(
      {“name.firstName” : “Rohit”},
      {
           $set : {“address.phone.number” : “111-111-111-8”}
       }
  )

La operación anterior devuelve el siguiente resultado, matchedCount indica la cantidad de documentos que coincidieron con los criterios y modifiedCount indica la cantidad de documentos actualizados.

WriteResult({ «nMatched» : 1, «nUpserted» : 0, «nModified» : 1 })

Using-update-method

 

Actualizar un documento

Se utiliza para actualizar un solo documento. Solo actualiza el primer documento de la colección si tenemos más de un documento que coincida con los criterios especificados.

Sintaxis: 

db.<nombre_de_la_colección>.updateOne(
         <filtro>
       <actualización>
)

  • <filtro> es un documento que especifica los criterios para la actualización. Si el filtro coincide con más de un documento, el método updateOne() actualiza solo el primer documento. Si pasa un documento vacío {} al método, solo actualizará el primer documento de la colección. 
  • <update> es un documento que especifica las actualizaciones a aplicar.

Ejemplo: 

En el siguiente ejemplo, usamos el método updateOne() para actualizar el código PIN del campo del documento con _id: 1. El método updateOne() siempre modificará un solo documento.

  • El { _id : 1 } es el argumento de filtro que coincide con los documentos para actualizar. En este ejemplo, coincide con el documento cuyo _id es 1.
  • El { $set : {“pincode” : “1111111”} } especifica el cambio a aplicar. Utiliza el operador $set para establecer el valor del campo de código PIN en 1111111.

db.employee_details_contact.updateOne(
           {“_id” : 1},
           {
              $set : {“pincode” : “1111111”}
           }
   )

La operación anterior devuelve el siguiente resultado, matchedCount indica la cantidad de documentos que coincidieron con los criterios y modifiedCount indica la cantidad de documentos actualizados.

{ «reconocido»: verdadero, «matchedCount»: 1, «modifiedCount»: 1}

Using-updateOne-method

 

Actualizar muchos documentos

Se utiliza para actualizar todos los documentos de la colección que coincidan con los criterios especificados. Esto es similar al método de actualización cuando usamos la opción ‘multi: true’.

Sintaxis:

db.<nombre_de_la_colección>.updateMany(
        <filtro>
       <actualización>
)

  • <filtro> es un documento que especifica la condición para seleccionar el documento para la actualización. Si pasa un documento vacío ({}) al método updateMany(), actualizará todos los documentos.
  • <update> es un documento que especifica las actualizaciones a aplicar.

Ejemplo: 

En el siguiente ejemplo, usamos el método updateMany() para actualizar el campo salario del documento con salario: 20000. Este método se usa para actualizar todos los documentos que cumplen los criterios especificados.

  • El {“salario”:20000 } es el argumento de filtro que coincide con los documentos para actualizar. En este ejemplo, coincide con todos los documentos cuyo ‘salario’: 20000.
  • El { $set: {“salary”:85000 } } especifica el cambio a aplicar. Utiliza el operador $set para establecer el valor del campo de salario en 85000.

db.employee_details.updateMany(
           {“salario”:20000 }, 
           { 
             $conjunto: {“salario”:85000 }
           }

La operación anterior devuelve el siguiente resultado, matchedCount indica la cantidad de documentos que coincidieron con los criterios y modifiedCount indica la cantidad de documentos actualizados.

{ «reconocido»: verdadero, «matchedCount»: 5, «modifiedCount»: 5}

Using-updateMany-method

 

Publicación traducida automáticamente

Artículo escrito por romalsingla y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *