MongoDB $ AnyelementTrue $ AllelementsTrue

MongoDB $ AnyelementTrue $ AllelementsTrue

$ AnyelementTrue y $ AllelementsTrue son los operadores de tuberías de agregación de MongoDB. El operador MongoDB $ AnyElEmentTrue solo necesita una expresión como parámetro como un conjunto que proporciona cierto si alguno de los elementos proporcionados al conjunto evalúa como verdadero. Lo mismo es el caso con el operador $ AllElementStrue. Si alguno de los elementos de la matriz es verdadero cuando se evalúa una matriz como un grupo, el operador $ anyeLementTrue de MongoDB devuelve verdadero. Además, el operador $ AnyelementTrue y $ AllelementStrue analiza todos los demás elementos como verdaderos, incluidas las matrices y los valores de Integer no cero.

¿Cómo podemos usar $ AnyelementTrue y el operador $ AllelementStrue en MongoDB?

El uso de $ AnyelementTrue y el operador $ AllelementStrue se demuestra aquí con la implementación de ejemplo en el shell MongoDB. En primer lugar, estamos obligados a definir una colección que contenga documentos para la implementación de $ AnyelementTrue y el operador $ AllelementStrue. Aquí, hemos representado la colección MongoDB "BlogPost" que se utilizará en este artículo. La colección "BlogPost" contiene varios documentos que se consultan primero con el método InsertMany (). Con el método InsertMany (), hemos insertado el siguiente documento donde la columna "_id" indica el número de serie y el "Comentarios" es la columna de la matriz especificada con los diferentes elementos.

db.Entrada en el blog.insertmany ([

"_id": 1,
"Comentarios": [Verdadero, Falso]
,

"_id": 2,
"Comentarios": [1, verdadero, 5]
,

"_id": 3,
"Comentarios": [nulo, falso, indefinido, 0]
,

"_id": 4,
"Comentarios": [Verdadero, [Verdadero]]
,

"_id": 5,
"Comentarios": []

])

La salida de confirmación agregó con éxito los documentos en la colección "BlogPost" de MongoDB se muestra de la siguiente manera:


Reconocido: verdadero,
insertedids: '0': 1, '1': 2, '2': 3, '3': 4, '4': 5

Ejemplo # 1: Uso del operador $ AnyElementTrue en MongoDB

Aquí, hemos utilizado el operador $ AnyeLementTrue de MongoDB que se establece con una expresión de argumento único. Tenemos el método agregado () donde se define el operador de proyecto $. El operador de proyecto $ se define aún más con el campo "isanyelementTrue" que emplea al operador $ anyElEmentTrue. El operador $ AnyeLementTrue se aplica con la expresión única "[" $ Comentarios "]". El operador $ AnyelementTrue determina el valor del campo de matriz "$ Comentarios" que evalúa los resultados verdaderos.

db.Entrada en el blog.agregar([
$ Project: "Comentarios": 1, isanyElementTrue: $ AnyElEmentTrue: ["$ Comentarios"]
]);

El operador $ AnyelementTrue devolverá el siguiente resultado después de ejecutar la consulta anterior. Enumeró todos los resultados para evaluar los valores verdaderos en cada documento.

[
_id: 1, comentarios: [verdadero, falso], isanyelementTrue: true,
_id: 2, comentarios: [1, verdadero, 5], isanyelementTrue: true,
_id: 3, comentarios: [nulo, falso, nulo, 0], isanyelementTrue: falso,
_id: 4, comentarios: [verdadero, [verdadero]], isanyelementTrue: true,
_id: 5, comentarios: [], isanyelementTrue: falso
]

Ejemplo # 2: Uso del operador $ AnyElementTrue en MongoDB donde ningún valor es verdadero

Cuando los documentos no contienen ningún valor verdadero en el campo de matriz, el operador $ AnyElementTrue evalúa el valor falso. Tengamos la implementación de ejemplo del operador $ AnyeLementTrue donde no hay un elemento verdadero en la matriz. En primer lugar, tenemos un método agregado () donde el operador $ coincidencia se establece con la condición "_id: 3" para que coincida. Luego, hemos establecido el comando $ proyecto donde el campo "_id" se excluye de la salida ya que el valor asignado es "0". A continuación, hemos definido un operador $ AnyElEmentTrue dentro de la variable de operador de proyecto $ "isAyElElementTrue". Hemos ingresado la expresión "[$ Comentarios]" al operador $ AnyElEmentTrue que evaluará los resultados esperados del documento especificado.

db.Entrada en el blog.agregar(
[
$ Match: _id: 3,
$ Project:
_id: 0,
isanyElementTrue: $ AnyElEmentTrue: ["$ Comentarios"]

]
)

Los resultados mostraron el valor falso en la salida porque el documento "_id: 3" contenía los elementos de la matriz "[NULL, FALSO, UNFINADO, 0]" donde ningún valor es verdadero. El operador $ AnyeLementTrue siempre se evalúa en falso cuando los valores de la matriz se establecen como falsos, nulos, indefinidos o 0.

[isanyelementTrue: falso]

Ejemplo # 3: Uso del operador $ AnyeLementTrue en MongoDB para la matriz anidada

La matriz se verifica al nivel superior por el operador $ AnyElEmentTrue. Por lo tanto, la operación $ AnyeLementTrue no desciende las matrices anidadas. El valor de la matriz anidada, ya sea verdadero o falso, no se ve afectado por el operador $ AnyElEmentTrue. La matriz anidada se considera como el elemento y $ AnyElementTrue indica que es cierto en este caso. Solo considere la consulta del operador de cualquiera de cualquiera de AnyelementTrue para el documento que tiene la matriz anidada. Hemos dado una condición "_id: $ in: [4]" a un operador de $. Cuando se encuentra el documento cuyo "_id" es igual a "4", el operador $ AnyElEmentTrue calculará si el campo "$ Comentarios" evalúa el valor "verdadero".

db.Entrada en el blog.agregar(
[
$ Match: _id: $ in: [4],
$ Project:
isanyElementTrue: $ AnyElEmentTrue: ["$ Comentarios"]

]
)

Para la consulta antes mencionada, se muestran los resultados.

[_id: 4, isanyelementTrue: true]

Ejemplo # 4: Uso del operador $ AllelementStrue en MongoDB

Ahora, tenemos un ejemplo de otro operador de MongoDB "$ AllelementsTrue". $ AllElementStrue Operator ofrece un valor de salida verdadero cuando no hay valores falsos dentro de la matriz del documento. Podemos ver que la consulta de $ AllelementsTrue es casi la misma que para el $ AnyelementTrue. Aquí, especificamos que el operador $ AllElementStrue es la variable "ISAlLElEntTrue" del operador de proyecto $. Luego, el operador "$ AllelementStrue" contenía la expresión donde se define el campo "$ comentarios" para evaluar los resultados.

db.Entrada en el blog.agregar([
$ Project: "Comentarios": 1, "_ id": 0, isAllElementTrue: $ AllElementStrue: ["$ comentarios"]
]);

La salida se enumera con los valores de campo de "comentarios" de la matriz y los resultados contra cada documento devuelto del operador $ AllelementStrue. Podemos generalizar que el valor verdadero se obtiene solo de aquellos documentos que no tienen valores falsos.

[
Comentarios: [verdadero, falso], isallelementTrue: falso,
Comentarios: [1, verdadero, 5], isallelementTrue: true,
Comentarios: [NULL, FALSO, NULL, 0], ISALLELEMENTRUE: FALSE,
Comentarios: [true, [true]], isallelementTrue: true,
Comentarios: [], isallelementTrue: true
]

Ejemplo # 5: Uso del operador $ AllElementStrue en MongoDB recupera un valor falso

El $ AllementsTrue devuelve el valor falso cuando tenemos al menos un valor falso en la matriz. Considere la consulta del operador $ AllelementStrue que devuelve el valor falso. Aquí, tenemos un operador $ Match definido con la expresión "_id: 1" para que coincida con el documento. Después de eso, hemos dado un operador de proyecto $ donde se requiere que el operador $ AllelementsTrue sea la operación de la expresión "[" $ comentarios "]".

db.Entrada en el blog.agregar([
$ Match: _id: 1,
$ Project:
_id: 0,
isallelementTrue: $ AllElementStrue: ["$ Comentarios"]
]
)

Tenemos la salida falsa de la consulta anterior porque hay un valor de matriz verdadero y un valor falso en la matriz.

[isallelementTrue: falso]

Ejemplo # 6: Uso del operador $ AllElementStrue en MongoDB en la matriz vacía

El operador $ AllEmentStrue proporciona el valor verdadero en el caso en que la matriz no se ha llenado con ningún elemento. Aquí, hemos proporcionado el documento cuyo campo de matriz está vacío. Luego, aplicamos el operador $ AllelementStrue que toma el campo "comentarios" de ese documento para evaluar el resultado esperado.

db.Entrada en el blog.agregar(
[
$ Match: _id: 5,
$ Project:
isallelementTrue: $ AllElementStrue: ["$ Comentarios"]

]
)

La salida genera el valor verdadero porque el documento coincidente contiene una matriz vacía.

[_id: 5, isallelementTrue: true]

Conclusión

Los operadores MongoDB $ AnyElEmentTrue y $ AllelementsTrue se discuten en el artículo. Hemos explorado los operadores $ AnyeLementTrue y $ AllelementStrue con los casos básicos y diferentes. En primer lugar, hemos explicado el operador $ AllelementStrue con el estuche cuando la matriz no se especifica con el valor verdadero. A continuación, hemos tomado un caso del operador $ AnyelementTrue que se realiza en la matriz anidada. Después de eso, tenemos $ AllementsTrue donde primero discutimos cuándo se obtiene el falso de este operador. En segundo lugar, tenemos los resultados del operador $ AllelementTrue aplicado en la matriz vacía.