O $ anyelementTrue e $ allementstrue são os operadores de oleodutos de agregação do MongoDB. O operador MongoDB $ anyElementTrue precisa apenas de uma expressão como um parâmetro como um conjunto que dá verdadeiro se algum dos elementos fornecidos ao conjunto avalia. O mesmo é o caso do Operador de Alelementstrue. Se algum dos elementos da matriz for verdadeiro quando uma matriz for avaliada como um grupo, o Operador AnelementTrue do MongoDB retorna true. Além disso, o $ AnyelementTrue e o $ allementstrue Operator analisam todos os outros elementos como verdadeiros, incluindo matrizes e valores inteiros diferentes de zero.
Como podemos usar o $ anyelementTrue e o operador $ allementstrue em MongoDB?
O uso do $ anyelementTrue e o $ ALELENTURE Operator é demonstrado aqui com a implementação de exemplo no shell do MongoDB. Em primeiro lugar, somos obrigados a definir uma coleção que contém documentos para a implementação do $ anyelementTrue e o $ allementstrue Operator. Aqui, representamos a coleção MongoDB "BlogPost", que será usada neste artigo. A coleção "BlogPost" contém vários documentos que são consultados pela primeira vez com o método insertMany (). Com o método insertMany (), inserimos o documento a seguir em que a coluna "_id" indica o número de série e os "comentários" é a coluna da matriz especificada com os diferentes elementos.
dB.Blogpost.InsertMany ([
"_id": 1,
"Comentários": [verdadeiro, falso]
,
"_id": 2,
"Comentários": [1, verdade, 5]
,
"_id": 3,
"Comentários": [nulo, falso, indefinido, 0]
,
"_id": 4,
"Comentários": [Verdadeiro, [True]]
,
"_id": 5,
"Comentários" : []
]))
A saída de confirmação adicionou com êxito os documentos na coleção “BlogPost” do MongoDB é exibida da seguinte forma:
reconhecido: verdadeiro,
inserdIds: '0': 1, '1': 2, '2': 3, '3': 4, '4': 5
Exemplo # 1: Usando o Operador de $ AnyelementTrue em MongoDB
Aqui, utilizamos o $ AnyelementUtue Operator de MongoDB, que é definido com uma única expressão de argumento. Temos o método agregate () em que o operador de projeto $ é definido. O Operador de Projeto $ é definido ainda mais com o campo "IsanyElementTrue", que emprega o Operador de $ anyelementUtue. O operador $ anyelementTrue é aplicado com a expressão única "[" $ comentários "]". O operador de $ anyelementTrue determina o valor do campo da matriz “$ comentários” que avalia os resultados verdadeiros.
dB.Blogpost.agregar([
$ Project: "Comentários": 1, isanyElementTrue: $ anyelementTrue: ["$ comentários"]
]);
O operador de $ anyelementTrue retornará o seguinte resultado após executar a consulta acima. Ele listou todos os resultados para avaliar os valores verdadeiros em cada documento.
[[
_id: 1, comentários: [true, false], isanyElementTrue: true,
_id: 2, Comentários: [1, true, 5], isanyElementTrue: true,
_id: 3, Comentários: [NULL, FALSE, NULL, 0], ISANYELEMENTURUE: FALSE,
_id: 4, comentários: [true, [true]], isanyElementTrue: true,
_id: 5, Comentários: [], isanyElementTrue: false
]
Exemplo # 2: Usando o $ AnyelementTrue Operator em MongoDB, onde nenhum valor é verdadeiro
Quando os documentos não contêm nenhum valor verdadeiro no campo da matriz, o operador $ anyelementTrue avalia o valor falso. Vamos ter o exemplo de implementação do operador de $ anyelementTrue, onde não há elemento verdadeiro na matriz. Em primeiro lugar, temos um método agregate () em que o operador de Match $ é definido com a condição "_id: 3" a ser correspondente. Em seguida, definimos o comando $ projeto em que o campo "_id" é excluído da saída como o valor atribuído a ele é "0". Em seguida, definimos um operador de $ anyelement em dentro da variável do operador de projeto "isanyElementTrue". Digitamos a expressão "[$ comentários]" no operador de $ anyelementUtue que avaliará os resultados esperados do documento especificado.
dB.Blogpost.agregar(
[[
$ Match: _id: 3,
$ Project:
_id: 0,
isanyElementTrue: $ anyelementTrue: ["$ comentários"]
]
)
Os resultados mostraram o valor falso na saída porque o documento "_id: 3" continha os elementos da matriz "[nulo, false, indefinido, 0]" onde nenhum valor é verdadeiro. O $ AnyelementUtue Operator sempre avalia como false quando os valores da matriz são definidos como falsos, nulos, indefinidos ou 0.
[isanyElementTrue: false]
Exemplo # 3: Usando o $ AnyelementTrue Operator em MongoDB para a matriz aninhada
A matriz é verificada no nível superior pelo operador de $ anyelementTrue. Portanto, a operação $ anyelementUtue não desce as matrizes aninhadas. O valor da matriz aninhada, verdadeiro ou falso. A matriz aninhada é considerada como o elemento e $ anyelementTrue indica que é verdade neste caso. Basta considerar a consulta de $ anyelementtue Operator para o documento que tem a matriz aninhada. Demos uma condição “_id: $ in: [4]” para um operador de Match $ Match. Quando o documento cujo "_id" é igual a "4" é encontrado, o $ AnyelementTrue Operator descobrirá se o campo "$ comentários" avaliar o valor "True".
dB.Blogpost.agregar(
[[
$ Match: _id: $ in: [4],
$ Project:
isanyElementTrue: $ anyelementTrue: ["$ comentários"]
]
)
Para a consulta acima mencionada, os resultados são mostrados.
[_id: 4, isanyElementTrue: true]
Exemplo # 4: Usando o Operador de Alelementstrue em MongoDB
Agora, temos um exemplo de outro operador do MongoDB "$ allementstrue". $ allementstrue operador fornece um valor de saída verdadeiro quando não há valores falsos dentro da matriz do documento. Podemos ver a consulta do $ allementstrue é quase o mesmo que para o $ anyelementTrue. Aqui, especificamos que o operador de $ allementstrue é a variável "isallementTrue" do operador de projeto $. Em seguida, o operador "$ allementstrue" continha a expressão em que o campo "$ comentários" é definido para avaliar os resultados.
dB.Blogpost.agregar([
$ Project: "Comments": 1, "_ Id": 0, isallementTrue: $ allementStrue: ["$ comentários"]
]);
A saída está listada com os valores do campo "Comentários" da matriz e os resultados em relação a cada documento retornado do operador de $ allementstrue. Podemos generalizar que o verdadeiro valor é obtido apenas daqueles documentos que não têm valores falsos.
[[
Comentários: [true, false], isallementTrue: false,
Comentários: [1, true, 5], isallementTrue: true,
Comentários: [NULL, FALSE, NULL, 0], ISALLEENTUTUE: FALSE,
Comentários: [true, [true]], isallementTrue: true,
Comentários: [], isallementTrue: true
]
Exemplo # 5: Usando o operador de $ allementstrue em MongoDB recupera um valor falso
O $ ALELENTURUE retorna o valor falso quando temos pelo menos um valor falso na matriz. Considere a consulta do operador de $ allementstrue que retorna o valor falso. Aqui, temos um operador de match $ definido com a expressão "_id: 1" para corresponder ao documento. Depois disso, fornecemos um operador de projeto $ onde o operador $ allementstrue é chamado para a operação na expressão “[“ $ comentários ”]”.
dB.Blogpost.agregar([
$ Match: _id: 1,
$ Project:
_id: 0,
isallementTrue: $ allementsTrue: ["$ comentários"]
]
)
Temos a saída falsa da consulta acima, porque existe um verdadeiro valor da matriz e um valor falso na matriz.
[isallementTrue: false]
Exemplo # 6: Usando o operador de $ allementstrue em MongoDB na matriz vazia
O operador de $ allementstrue fornece o valor verdadeiro no caso em que a matriz não foi preenchida com nenhum elemento. Aqui, fornecemos o documento cujo campo de matriz está vazio. Em seguida, aplicamos o operador de $ allementstrue, que leva o campo "Comentários" desse documento para avaliar o resultado esperado.
dB.Blogpost.agregar(
[[
$ Match: _id: 5,
$ Project:
isallementTrue: $ allementsTrue: ["$ comentários"]
]
)
A saída gera o valor verdadeiro porque o documento correspondente contém uma matriz vazia.
[_id: 5, isallementTrue: true]
Conclusão
Os operadores de MongoDB $ anyelementTue e $ allementstrue são discutidos no artigo. Exploramos os $ anyelementTrue e $ allementstrue Operadores com os casos básicos e diferentes. Em primeiro lugar, explicamos o $ ALELENTURE Operator com o caso quando a matriz não é especificada com o valor verdadeiro. Em seguida, assumimos um caso do operador de $ anyelementTrue se apresentando na matriz aninhada. Depois disso, temos $ allementstrue, onde discutimos pela primeira vez quando o falso é obtido com este operador. Em segundo lugar, obtivemos os resultados do operador $ allelementTrue aplicado na matriz vazia.