Incremento automático en MongoDB

MD Aminul Islam 20 junio 2023
Incremento automático en MongoDB

La mayoría del lenguaje de consulta SQL contiene una sola palabra clave para hacer que un campo se incremente automáticamente, pero es un poco complejo en MongoDB. En MongoDB, no hay ninguna palabra clave disponible para el incremento automático.

Este artículo nos mostrará cómo podemos insertar datos en una colección MongoDB con la funcionalidad de incremento automático, y veremos un ejemplo relevante para el tema para hacerlo más fácil.

Aplicar la funcionalidad de incremento automático en MongoDB

Algunos campos que necesitamos incrementar después de insertar un nuevo documento en una colección incluyen el número de serie, ID, etc. Pero podemos hacerlo automáticamente si agregamos algunos caracteres simples a nuestra consulta.

La palabra clave que utilizaremos para este fin es $inc, incrementando el valor del dato específico. Veamos cómo podemos integrarlo en nuestra consulta.

En nuestro ejemplo a continuación, demostraremos cómo usamos el incremento automático en MongoDB. Para este propósito, primero, necesitamos crear una nueva colección llamada “recuento” que rastreará el número de secuencia.

Inicialicemos la colección insertando un documento como el siguiente.

db.count.insert(
   {
      _id: "incId",
      seq: 0
   }
)

Esto inicializará la secuencia incremental a 0. Ahora, crearemos una función llamada autoIncrement() que incrementará el valor tanto en la colección count como en la colección especificada.

function autoIncrement(name) {
   var ret = db.count.findAndModify(
          {
            query: { _id: name },
            update: { $inc: { seq: 1 } },
            new: true
          }
   );

   return ret.seq;
}

La función devolverá el valor de la secuencia incrementada, que podemos usar en nuestra función insertar llamando a la función como la que se muestra a continuación.

db.mycollection.insert({ sl: autoIncrement("incId"), Name: "Retro"});
db.mycollection.insert({ sl: autoIncrement("incId"), Name: "Max"});

Después de ejecutar los comandos anteriores, no necesita incrementar manualmente un valor de campo. Después de insertar el documento, obtendrá el siguiente resultado en su consola:

{ _id: ObjectId("6388f500054350812fa6b073"),
  sl: 1,
  Name: 'Retro' }
{ _id: ObjectId("6388f94e054350812fa6b075"),
  sl: 2,
  Name: 'Max'
}

Recuerde que no puede usar una colección de conteo para incrementar valores en múltiples colecciones. La colección contar es como una variable que contiene y actualiza los valores de incremento, por lo que debe crear una colección de conteo para incrementar los valores en múltiples colecciones.

Tenga en cuenta que los comandos que se muestran en este artículo son para la base de datos de MongoDB y el comando debe ejecutarse en la consola de MongoDB.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

Artículo relacionado - MongoDB Document