MongoDB – Modificador de $segmento

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 modificador $slice es uno de ellos. Este modificador se usa para limitar el número de elementos de la array durante una operación $push. Sintaxis: 

{
  $push: {
     <field>: {
       $each: [ <value1>, <value2>, ... ],
       $slice: <number>
     }
  }
}
  • Si el valor de número es cero, este modificador actualizará el campo de la array a una array vacía.
  • Si el valor de número es negativo, este modificador actualizará el campo de array para que contenga solo los últimos elementos numéricos .
  • Si el valor de número es positivo, este modificador actualizará el campo de array para que contenga solo los elementos del primer número .
  • El modificador $segmento debe aparecer con $cada modificador en el operador $push. Se le permite pasar una array vacía en el modificador $each que ayuda al modificador $slice a mostrar su efecto. Si usa el modificador $slice sin el modificador $each, obtendrá un error.
  • El orden en que aparecen los modificadores en la operación $push es irrelevante.

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.

Cortando la array desde el final:

En este ejemplo, estamos agregando nuevos elementos en el campo de idioma y luego usamos el modificador $slice para recortar la array a los últimos cuatro elementos. 

Python3

db.contributor.update({name: "Suman"},
                      {$push: {language: { $each: ["SQL", "JS++"],
                       $slice: -4}}})

Cortando la array desde el frente:

En este ejemplo, estamos agregando nuevos elementos en el campo de idioma y luego usamos el modificador $slice para recortar la array a los primeros cinco elementos. 

Python3

db.contributor.update({name: "Rohit"},
                      {$push: {language: { $each: ["R Language", "JS++"],
                       $slice: 5}}})

Actualizar una array usando el modificador $slice:

En este ejemplo, estamos actualizando la array del campo de idioma recortando la array a los últimos tres elementos. 

Python3

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

Usando el modificador $slice con otros modificadores con el operador $push:

En este ejemplo, estamos usando el modificador $slice con otros modificadores como $each y $sort con el operador $push. 

Python3

db.contributor.update({name: "Rohit"},
                      {$push: { language: { $each: ["C++", "Kotlin"],
                       $sort: 1, $slice: 4}}})

Aquí,

  • El modificador $each se usa para agregar varios documentos a la array de idioma.
  • El modificador $sort se usa para ordenar todos los elementos de la array de idioma modificada en forma ascendente.
  • El modificador $slice se usa para mantener solo los primeros cuatro elementos ordenados de la array de idioma.

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 *