MongoDB $ addtoset

MongoDB $ addtoset
El operador $ Addtoset se encuentra entre los operadores de actualización de matriz () que MongoDB ofrece para actualizar el valor del campo de la matriz en documentos. El operador $ AddToset requirió entradas únicas para agregar o agregar en el campo de matriz especificado. Si un valor ya está presente en la matriz dada, entonces el $ addtoset recupera la matriz exacta sin modificación. El operador $ AddToset debe asegurarse de que una matriz no contenga ningún elemento duplicado cuando se actualice, pero es posible que se altere el orden de los elementos de una matriz después de que se haya agregado un valor.

Cómo usar el operador MongoDB $ Addtoset?

El operador $ addToset se emplea dentro del método de actualización () de MongoDB. El operador $ addToset ingresa el parámetro "campo" y la "adición". El "campo" indica la columna del documento que se actualizará. La "adición" es el parámetro que se asigna el valor que se insertará en la matriz al campo correspondiente. Antes de usar el operador $ addToset en la consulta MongoDB, necesitamos establecer la colección. Aquí, tenemos una colección MongoDB de "cursos" a los que hemos aplicado la consulta InsertMany () para agregar los siguientes documentos.

db.Cursos.insertmany ([

"_id": 1,
"Campo": "It",
"Cursos": ["Desarrollo web", "Base de datos", "Python"],
"Credithours": [5, 2, 7]
,

"_id": 2,
"Campo": "CS",
"Cursos": ["Python", "Networking", "Computing"],
"Credithours": [8, 4, 2]
,

"_id": 3,
"Campo": "SE",
"Cursos": ["Data Science", "Python", "IBM"],
"Credithours": [2, 9, 5]

])

El resultado de agregar los documentos a la colección "Cursos" se presenta a continuación.

Reconocido: True, InsertedIDS: '0': 1, '1': 2, '2': 3

Ejemplo # 1: Consulta del operador $ Addtoset en MongoDB para agregar el valor en un campo de matriz

Aquí, estamos agregando el nuevo valor en el campo utilizando el operador $ Addtoset. En la consulta de MongoDB, hemos empleado el método Update () en la colección "Cursos". El método Update () ingresa aún más la condición "campo": "cs" antes del operador $ addtoset. En primer lugar, se buscará el documento que se establece con el valor "CS" en la columna "campo" en la colección. Cuando el documento se igualará, el operador $ Addtoset continuará con el operador de agregar el valor. Hemos proporcionado el operador $ Addtoset el campo de matriz "cursos" para agregar un nuevo elemento de matriz de valor "cuentas".

db.Cursos.Update ("Field": "CS", $ addtoset: "cursos": "cuentas")

La salida muestra que el nuevo elemento de matriz "cuentas" se adjunta en el campo "cursos".


Reconocido: verdadero,
Insertedid: NULL,
MatchedCount: 1,
ModifiedCount: 1,
UpsertedCount: 0

Hemos examinado nuestra colección para confirmar la modificación. El campo de matriz "cursos" se modifica correctamente con el nuevo valor "Cuentas".


_id: 2,
Campo: 'CS',
Cursos: ['Python', 'Networking', 'Computing', 'Cuentas']],
Credithours: [8, 4, 2]

Ejemplo # 2: Consulta del operador $ Addtoset en MongoDB para agregar un nuevo campo

En la consulta anterior, el operador $ addToset se utiliza para agregar el nuevo valor en el campo existente. Además, podemos insertar el nuevo campo en el documento utilizando el operador $ AddToset en el método Update (). Tengamos la siguiente consulta de MongoDB. Hemos establecido el método update () donde se proporciona la expresión "" _id ": 2" para que coincida con ese documento en particular. Luego, asignamos el operador $ addToset para agregar el nuevo campo junto con el nuevo valor. Aquí, hemos agregado el campo de matriz "maestro" que no existe en los documentos de la colección "cursos". El campo de los "maestros" se asigna una variedad de nombres de maestros.

db.Cursos.actualizar(
"_id": 2,
$ addtoset: "maestros": ["Mr Sam", "MS Alice"]
)

El "ModifiedCount: 1" en la siguiente salida muestra que el documento se actualiza con el nuevo campo "Teachers" y los valores de la matriz.


Reconocido: verdadero,
Insertedid: NULL,
MatchedCount: 1,
ModifiedCount: 1,
UpsertedCount: 0

Ahora, cuando se revisan los documentos, se presentó con los nuevos resultados de actualización de la siguiente manera:


_id: 2,
Campo: 'CS',
Cursos: ['Python', 'Networking', 'Computing', 'Cuentas']],
Credithours: [8, 4, 2, 7, 3],
Maestros: [['Sr. Sam', 'MS Alice']]

Ejemplo # 3: Consulta del operador $ Addtoset en MongoDB para agregar una matriz en la matriz existente

Además, podemos agregar una matriz nueva completa a la matriz ya presente usando el operador $ Addtoset. Toda la matriz se adjunta como una matriz separada. Aquí, hemos dado una consulta a esta declaración. Tenemos un método Update () al que hemos asignado una condición "_id": 3 como primer parámetro. Entonces, el documento con el número "_id" "3" se combinará con la condición de actualización y luego el siguiente parámetro continuará. El siguiente parámetro del método update () es el método "$ addToset" para agregar la matriz a la matriz existente. Hemos especificado la matriz "[3, 1, 2]" en el campo "Credithours". Esta matriz se agregará como una matriz separada dentro de la matriz existente del campo "Credithours".

db.Cursos.actualizar(
"_id": 3,
$ addtoset: "credithours": [3, 1, 2]
)

La siguiente información indica que la matriz se agrega a la matriz actual:


Reconocido: verdadero,
Insertedid: NULL,
MatchedCount: 1,
ModifiedCount: 1,
UpsertedCount: 0

El documento que se muestra a continuación se actualiza con la nueva modificación que hemos realizado.


_id: 3,
Campo: 'SE',
Cursos: ['Data Science', 'Python', 'IBM'],
Credithours: [2, 9, 5, [3, 1, 2]]

Ejemplo # 4: Consulta del operador $ AddToset en MongoDB para agregar múltiples valores

El $ addToset nos permite agregar más de un valor al mismo tiempo en una matriz tomando el $ cada operador como parámetro. El $ cada operador se emplea para agregar múltiples entradas a una matriz proporcionada. Aquí, hemos dado una consulta en la que tenemos que satisfacer la condición "" _id ": 2" del método Update (). Luego, tenemos el operador $ Addtoset donde hemos empleado el $ operador cada uno para agregar los dos valores "7" y "3" en el campo "Credithours".

db.Cursos.update ("_id": 2, $ addtoset: "credithours": $ cada uno: [7,3]);

La consulta anterior ejecutada mostró la salida de confirmación que indica que los valores se insertan en el documento coincidente.


Reconocido: verdadero,
Insertedid: NULL,
MatchedCount: 1,
ModifiedCount: 1,
UpsertedCount: 0

Los dos elementos de matriz "7" y "3" se agregan en el campo de matriz "Credithours".


_id: 2,
Campo: 'CS',
Cursos: ['Python', 'Networking', 'Computing', 'Cuentas']],
Credithours: [8, 4, 2, 7, 3]

Ejemplo # 5: Consulta del operador $ AddToset en MongoDB para agregar el valor existente

Cuando el valor de la matriz ya está presente, intentamos insertar ese valor nuevamente en el campo, entonces el operador $ addsetto no hace nada. Para decirlo de otra manera, $ addtoset solo agrega un valor si no existe uno. Allí, hemos dado una consulta en el caparazón del MongoDB donde utilizamos el método Update (). Dentro del método Update (), hemos pasado la condición de que el documento tenga el "_id" igual a "1". Después de eso, llamamos al operador $ Addtoset que toma el campo "cursos" con el valor del parámetro "adición" "base de datos". La "base de datos" ya existe en el documento especificado para que el operador $ Addtoset no actualice este valor.

db.Cursos.actualizar(
_id: 1,
$ addtoset: "cursos": "base de datos"
)

Podemos ver que la opción "ModifiedCount" tiene un valor "0" que muestra que el documento no está modificado.


Reconocido: verdadero,
Insertedid: NULL,
MatchedCount: 1,
ModifiedCount: 0,
UpsertedCount: 0

El documento emparejado también se verifica a continuación para mostrar que el operador $ Addtoset ya no puede volver a agregar nuevamente los valores existentes.


_id: 1,
Campo: 'eso',
Cursos: ['Desarrollo web', 'Base de datos', 'Python'],
Credithours: [5, 2, 7, 3]

Conclusión

El artículo trata sobre la discusión del operador MongoDB $ Addtoset. Hemos visto la operación $ addtoset dentro de la consulta de actualización de MongoDB. El primer ejemplo es a $ Addtoset Operator Agregar el valor único en la matriz del documento. Luego hemos agregado el campo de inexistencia con el operador $ addtoset. La nueva matriz también se adjunta a la matriz ya especificada. Después de esto, agregamos la matriz con múltiples entradas, y luego intentamos insertar el valor duplicado en la matriz con el operador $ Addtoset.