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 $position
modificador es uno de ellos. Este modificador se usa para especificar la ubicación en la array en la que el $push
operador 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
$push
operación agrega elementos a la array. final de la array. - A partir de la versión 3.6 de MongoDB,
$position
el 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. $position
El 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