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