MongoDB $ anyelementtrue $ allelementstrue

MongoDB $ anyelementtrue $ allelementstrue

$ Anyelementtrue e $ allelementstrue sono gli operatori di pipeline di aggregazione di MongoDB. L'operatore MongoDB $ anyelementtrue necessita solo di un'espressione come parametro come set che fornisce true se uno qualsiasi degli elementi forniti al set valuta per essere vero. Lo stesso è il caso dell'operatore di allelement $. Se uno qualsiasi degli elementi dell'array è vero quando un array viene valutato come gruppo, l'operatore $ anyelementtrue di MongoDB restituisce vero. Inoltre, l'operatore di $ AnyElementTrue e $ allelement di $ analizza tutti gli altri elementi come vero, inclusi array e valori interi diversi da zero.

Come possiamo usare $ anyelementtrue e $ allelementstrue operatore in mongodb?

L'utilizzo di $ anyelementtrue e dell'operatore $ allelement di $ è dimostrato qui con l'implementazione di esempio nella shell MongoDB. In primo luogo, siamo tenuti a definire una raccolta che contiene documenti per l'implementazione dell'operatore $ AnyElementTrue e $. Qui, abbiamo rappresentato la collezione MongoDB "BlogPost" che verrà utilizzata in questo articolo. La collezione "BlogPost" contiene diversi documenti che vengono prima interrogati con il metodo InsertMany (). Con il metodo insertMany (), abbiamo inserito il seguente documento in cui la colonna "_id" indica il numero di serie e il "commenti" è la colonna array specificata con i diversi elementi.

db.Post sul blog.InsertMany ([

"_id": 1,
"Commenti": [vero, falso]
,

"_id": 2,
"Commenti": [1, vero, 5]
,

"_id": 3,
"Commenti": [null, false, indefinito, 0]
,

"_id": 4,
"Commenti": [True, [True]]
,

"_id": 5,
"Commenti" : []

])

L'output di conferma ha aggiunto correttamente i documenti nella raccolta di "Blogpost" MongoDB viene visualizzato come segue:


riconosciuto: vero,
inseritedids: '0': 1, '1': 2, '2': 3, '3': 4, '4': 5

Esempio n. 1: utilizzando l'operatore $ anyelementtrue in MongoDB

Qui, abbiamo utilizzato l'operatore $ anyelementtrue di MongoDB che è impostato con un'espressione di un singolo argomento. Abbiamo il metodo aggregato () in cui è definito l'operatore del progetto $. L'operatore del progetto $ è ulteriormente definito con il campo "isanyelementtrue" che impiega l'operatore $ anyelementtrue. L'operatore $ anyelementtrue viene applicato con la singola espressione "[" $ commenti "]". L'operatore di $ anyelementtrue determina il valore dal campo dell'array "$ commenti" che valuta i risultati veri.

db.Post sul blog.aggregato([
$ Project: "Commenti": 1, IsanyElementTrue: $ anyelementTrue: ["$ commenti"]
]);

L'operatore $ anyelementtrue restituirà il seguente risultato dopo aver eseguito la query sopra. Ha elencato tutti i risultati per valutare i valori reali rispetto a ciascun documento.

[
_id: 1, commenti: [true, false], isanyelementtrue: true,
_id: 2, commenti: [1, true, 5], isanyelementtrue: true,
_id: 3, commenti: [null, false, null, 0], isanyelementtrue: false,
_id: 4, commenti: [true, [true]], isanyelementtrue: true,
_id: 5, commenti: [], isanyelementtrue: false
"

Esempio n. 2: utilizzando l'operatore $ anyelementtrue in MongoDB dove nessun valore è vero

Quando i documenti non contengono alcun valore reale nel campo Array, l'operatore di $ AnyElementTrue valuta il valore falso. Facciamo l'implementazione di esempio dell'operatore $ anyelementtrue in cui non esiste un vero elemento nell'array. In primo luogo, abbiamo un metodo aggregato () in cui l'operatore $ match è impostato con la condizione "_id: 3" da abbinare. Quindi, abbiamo impostato il comando $ Project in cui il campo "_ID" è escluso dall'output come valore assegnato è "0". Successivamente, abbiamo definito un operatore di $ AnyElementTrue all'interno della variabile di $ operatore di progetto "IsanyElementTrue". Abbiamo input l'espressione "[$ commenti]" all'operatore $ anyelementtrue che valuterà i risultati previsti del documento specificato.

db.Post sul blog.aggregato(
[
$ match: _id: 3,
$ Progetto:
_id: 0,
isanyelementtrue: $ anyelementtrue: ["$ commenti"]

"
)

I risultati hanno mostrato il falso valore nell'output perché il documento "_id: 3" conteneva gli elementi dell'array "[null, false, non definiti, 0]" in cui nessun valore è vero. L'operatore $ anyelementtrue valuta sempre false quando i valori di array sono impostati come falsi, null, indefiniti o 0.

[isanyelementtrue: false]

Esempio n. 3: utilizzando l'operatore $ anyelementtrue in MongoDB per l'array nidificato

L'array è controllato al livello più alto dall'operatore $ anyelementtrue. Pertanto, l'operazione di $ anyelementtrue non scende le array nidificati. Il valore dell'array nidificato sia vero che falso non è influenzato dall'operatore $ anyelementtrue. L'array nidificato è considerato come elemento e $ anyelementtrue indica che è vero in questo caso. Basta prendere in considerazione la query dell'operatore di $ AnyElementTrue per il documento che ha l'array nidificato. Abbiamo dato una condizione "_id: $ in: [4]" a un operatore $ match. Quando si trova il documento il cui "_id" è uguale a "4", allora l'operatore $ anyelementtrue capirà se il campo "$ commenti" valuta il valore "vero".

db.Post sul blog.aggregato(
[
$ match: _id: $ in: [4],
$ Progetto:
isanyelementtrue: $ anyelementtrue: ["$ commenti"]

"
)

Per la domanda di cui sopra, i risultati sono mostrati.

[_id: 4, isanyelementtrue: true]

Esempio n. 4: utilizzando l'operatore di allelement $ in MongoDB

Ora, abbiamo un esempio di un altro operatore MongoDB "$ allelementstrue". $ AllelementsTrue Operator fornisce un vero valore di output quando non ci sono valori falsi all'interno dell'array del documento. Possiamo vedere la query di $ allelementstrue è quasi la stessa di $ anyelementtrue. Qui, abbiamo specificato che l'operatore $ Allelementstrue $ è la variabile "IsAllelementTrue" dell'operatore del progetto $. Quindi, l'operatore "$ allelementstrue" conteneva l'espressione in cui il campo "$ commenti" è definito per valutare i risultati.

db.Post sul blog.aggregato([
$ Project: "Commenti": 1, "_ id": 0, isAllelementTrue: $ AllelementsTrue: ["$ commenti"]
]);

L'output è elencato con i valori del campo "commenti" dell'array e i risultati contro ciascun documento restituiti dall'operatore di allelement $. Possiamo generalizzare che il vero valore è ottenuto solo da quei documenti che non hanno valori falsi.

[
Commenti: [True, False], IsAllelementTrue: false,
Commenti: [1, True, 5], IsAllelementTrue: true,
Commenti: [null, false, null, 0], isAllelementtrue: false,
Commenti: [True, [True]], IsAllelementTrue: true,
Commenti: [], isAllelementTrue: true
"

Esempio n. 5: l'uso dell'operatore di allelement $ in MongoDB recupera un valore falso

Il $ allelement di $ restituisce il falso valore quando abbiamo almeno un valore falso nell'array. Considera la query dell'operatore di allelement $ che restituisce il falso valore. Qui, abbiamo un operatore $ match definito con l'espressione "_id: 1" per abbinare il documento. Successivamente, abbiamo dato un operatore di progetto $ in cui l'operatore $ allelementstrue è chiamato per l'operazione sull'espressione "[" $ commenti "]".

db.Post sul blog.aggregato([
$ match: _id: 1,
$ Progetto:
_id: 0,
isAllelementTrue: $ AllelementsTrue: ["$ commenti"]
]
)

Abbiamo il falso output dalla query sopra perché esiste un vero valore di array e un falso valore nell'array.

[isAllelementTrue: false]

Esempio # 6: utilizzando l'operatore di allelement $ in MongoDB sull'array vuoto

L'operatore Allelementstrue $ fornisce il vero valore nel caso in cui l'array non è stato riempito con alcun elemento. Qui, abbiamo fornito il documento il cui campo array è vuoto. Quindi, abbiamo applicato l'operatore di allelement $ che prende il campo "commenti" di quel documento per valutare il risultato previsto.

db.Post sul blog.aggregato(
[
$ match: _id: 5,
$ Progetto:
isAllelementTrue: $ AllelementsTrue: ["$ commenti"]

"
)

L'output genera il valore reale perché il documento abbinato contiene un array vuoto.

[_id: 5, isAllelementTrue: true]

Conclusione

Gli operatori di MongoDB $ AnyElementTrue e $ allelementstrue sono discussi nell'articolo. Abbiamo esplorato gli operatori di $ AnyElementTrue e $ allelement di base con i casi di base e diversi. In primo luogo, abbiamo spiegato l'operatore Allelement $ con il caso in cui l'array non è specificato con il valore reale. Successivamente, abbiamo preso un caso dell'operatore di $ AnyElementTrue che si esibisce sull'array nidificato. Successivamente, abbiamo $ allelementstrue in cui discutiamo per la prima volta quando il falso è ottenuto da questo operatore. In secondo luogo, abbiamo ottenuto i risultati dell'operatore Allelementtrue $ sull'array vuoto.