MongoDB – $modificador de posición

MongoDB proporciona diferentes tipos de operadores de actualización de array para actualizar los valores de los campos de array en los documentos y el $positionmodificador es uno de ellos. Este modificador se usa para especificar la ubicación en la array en la que el $pushoperador inserta elementos. Sin el modificador $position, el operador $push inserta elementos al final de la array.

Sintaxis:

{
  $push: {
     <field>: {
       $each: [ <value1>, <value2>, ... ],
       $position: <number>
     }
  }
}

Aquí, <número> indica la posición del elemento en la array de acuerdo con el índice de base cero.

  • Si el valor de <número> (el número no negativo corresponde a la array que comienza desde el principio de la array) es mayor o igual a la longitud de la array, entonces este modificador no funciona y la $pushoperación agrega elementos a la array. final de la array.
  • A partir de la versión 3.6 de MongoDB, $positionel modificador acepta el valor de índice negativo. Cuando el valor de <number> es negativo, la operación $position cuenta el elemento desde el último de la array, pero no incluye el último elemento. Por ejemplo, si el valor del modificador de $posición es -1, indica la posición justo antes del último elemento de la array y si especifica varios elementos en $cada array, entonces el último elemento agregado está en la posición especificada desde el fin. Si el valor de <number> es mayor o igual que la longitud de la array, la operación $push agrega elementos al principio de la array.
  • $positionEl modificador debe aparecer con $cada modificador en el operador $push. Si usa el modificador $position sin el modificador $each, obtendrá un error.

En los siguientes ejemplos, estamos trabajando con:

Base de datos: GeeksforGeeks
Colección: colaborador
Documento: dos documentos que contienen los detalles del colaborador en forma de pares de valor de campo.

Agregar elementos al comienzo de la array:

En este ejemplo, estamos agregando elementos, es decir, [“C#”, “Perl”] al principio (es decir, en la posición 0) del campo de idioma.

db.contributor.update({name: "Rohit"}, 
                      {$push: { language: { $each: ["C#", "Perl"],
                        $position: 0}}})

Agregar elementos al medio de la array:

En este ejemplo, estamos agregando elementos, es decir, [“Perl”] en el medio (es decir, en la posición 2) del campo de idioma.

db.contributor.update({name: "Suman"}, 
                      {$push: { language: { $each: [ "Perl"], 
                        $position: 2}}})

Usando un índice negativo para agregar elementos a la array:

En este ejemplo, estamos agregando elementos, es decir, [“C”] justo antes del último elemento en el campo de idioma.

db.contributor.update({name: "Rohit"},
                      {$push: { language: { $each: [ "C"], 
                        $position: -1}}})

Publicación traducida automáticamente

Artículo escrito por ankita_saini 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 *