Gli operatori $ First e $ Firstn sono il metodo della pipeline di aggregazione di MongoDB. L'operatore di aggregazione $ First ci consente di determinare il primo valore in un array. Il primo operatore $ prende solo l'array come parametro di input. L'operatore $ Firstn restituisce un numero preimpostato di voci dall'indice iniziale di un array. Il numero specificato per l'operatore $ Firstn non può essere inferiore a "1". Inoltre, l'operatore $ Firstn fornisce l'array originale se il numero definito è maggiore o uguale ai valori dell'array.
Come utilizzare gli operatori $ First e $ Firstn in MongoDB
Gli operatori $ First e $ Firstn sono utilizzati in MongoDB per ottenere il numero richiesto di elementi dalla serie di documenti. Gli operatori $ First e $ Firstn risolvono solo i campi di array nei documenti della raccolta MongoDB. Stiamo lavorando con la collezione "FoodItems" in questo articolo MongoDB. Aggiungiamo i documenti nella collezione "FoodItems" che contiene anche il campo dell'array su cui funzionano gli operatori $ First e $ Firstn. Il comando di aggiungere i documenti è rappresentato qui che utilizza il metodo InsertMany () per l'inserimento allo stesso tempo.
db.Prodotti alimentari.InsertMany ([
"_id": 1,
"Nome": "Frutti",
"Elenco": ["Apple", "Mango", "Cherry", "Kiwi"],
"Prezzo": 350
,
"_id": 2,
"nome": "verdure",
"Elenco": ["Beetroot", "Ravanello", "rapa", "Carrot."],
"Prezzo": 255
,
"_id": 3,
"Nome": "Snack Food",
"Elenco": ["Popcorn", "Peanuts salate", "Fries", "Baked Sweets", "Chocolates"],
"Prezzo": 400
,
"_id": 4,
"nome": "bevande",
"Elenco": ["Lemonade", "Miltershake", "Iced Tea", "Coffee", "Water", "Hot Chocolate"],
"Prezzo": 550
,
"_id": 5,
"Nome": "Food di mare",
"elenco": null,
"Prezzo": 300
])
Ora, i risultati dell'inserimento dei documenti sono visualizzati nel seguente che riconoscono "vero" e indicano che tutti i documenti sono inseriti senza alcun errore nella raccolta specificata:
riconosciuto: vero,
inseritedids: '0': 1, '1': 2, '2': 3, '3': 4, '4': 5
Esempio 1: Utilizzo del primo operatore MongoDB $ per ottenere il primo valore dell'array
Come abbiamo già discusso, il primo operatore $ raccoglie il primo elemento dal campo array del documento specificato. Nell'esempio, utilizziamo il primo operatore $ di MongoDB per recuperare il valore del primo campo dell'array da tutti i documenti che vengono inseriti nella collezione "FoodItems". Distribuiamo il comando aggregato in cui è specificato l'operatore del progetto $. L'operatore $ Project aggiunge il nuovo campo "FirstItem" che ha l'operatore $ First insieme all'espressione. Il primo operatore $ prende il nome del campo array "$ list" per ottenere il primo elemento.
db.Prodotti alimentari.aggregato([
$ Progetto:
"FirstItem":
$ prima: "$ list"
])
Possiamo vedere che il primo operatore $ restituisce il primo valore dall'array "$ list" di tutti i documenti.
[
_id: 1, FirstItem: 'Apple',
_id: 2, FirstItem: 'Beetroot',
_id: 3, FirstItem: 'Popcorn',
_id: 4, FirstItem: 'Lemonade',
_id: 5, FirstItem: null
"
Esempio 2: utilizzando il primo operatore MongoDB $ per l'operando non valido
Sappiamo che il primo operatore $ gestisce solo gli array. Ma il primo operatore $ deriva dalla fornitura di un operando non valido. Qui, abbiamo un esempio di dare un operando non valido nel primo operatore $ per aumentare le aspettative. Usiamo la stessa query dell'esempio precedente, ma la differenza è nel primo operatore $ in cui l'espressione viene cambiata. Invece di dare il campo Array dai documenti, inseriamo il campo "$ Price" che non contiene gli elementi dell'array. Quando viene eseguita la query, viene generato l'errore.
db.Prodotti alimentari.aggregato([
$ Progetto:
"Articolo":
$ First: "$ prezzo"
])
Si verifica il seguente errore MongoDB perché il campo $ Price non è un array. Il primo operatore $ in MongoDB tratta solo gli array come menzionato nel seguente errore:
Mongoservererror: PlanExecutor Errore durante l'aggregazione :: causata da :: L'argomento di $ First deve essere un array, ma è int
Esempio 3: Utilizzo del primo operatore MongoDB $ per i valori mancanti e null dell'array
Il primo operatore $ restituisce null se l'argomento è un campo di array vuoto o un campo di array mancante. Abbiniamo il documento che contiene il valore "_id" "5" perché contiene l'elemento matrice nulla. Successivamente, abbiamo impostato l'operatore $ First nel campo dell'operatore del progetto $, "FirstListValue". L'operatore $ First ha il campo Array "$ list" input per ottenere il suo primo articolo.
db.Prodotti alimentari.aggregato([
$ match: "_id": 5,
$ Progetto:
"FirstListValue":
$ prima: "$ list"
])
Come abbiamo visto nel documento "_id: 5", il campo $ list array contiene il valore null. Quando il precedente primo operatore $ viene eseguito nella shell, dà il valore nullo.
[_id: 5, FirstListValue: null]
Esempio 4: Utilizzo dell'operatore MongoDB $ Firstn per i valori NTH dell'array
Ora, prendiamo il numero richiesto di elementi dal campo dell'array. Per questo, abbiamo l'operatore $ Firstn la cui implementazione è leggermente diversa dall'operatore $ in base alla funzionalità. Lì, definiamo l'espressione "_id: 3" nell'operatore $ match per abbinare il documento con questa espressione. Quindi, abbiamo un nuovo campo "FirstListValue" che è incluso nell'operatore del progetto $. Il nuovo campo "FirstListValue" è impiegato con l'operatore $ Firstn in cui sono impostati gli argomenti "Input" e "N". L'argomento "input" ha il nome del campo Array "$ elenchi". L'argomento "N" ha il valore intero di "2" che indica il numero degli elementi che sono recuperati dal campo dell'array fornito.
db.Prodotti alimentari.aggregato([
$ match: "_id": 3,
$ Progetto:
"FirstListValue":
$ Firstn: Input: "$ List", n: 2
])
Abbiamo ottenuto due elementi dal seguente array "$ list" poiché il numero è specificato per l'operatore $ Firstn:
[_id: 3, FirstListValue: ['Popcorn', 'Salted Peanuts']]
Esempio 5: Utilizzo del primo operatore MongoDB $ per il NTH Value di un array con la condizione
Inoltre, l'argomento "N" dell'operatore $ Firstn può essere assegnato con un valore dinamicamente. Il parametro "N" ha un'istruzione condizionale ad essa associata che gli informa di recuperare l'elemento specificato dall'array quando la condizione è soddisfatta. Considera il seguente comando dell'operatore $ Firstn. Forniamo l'operatore $ Match il documento "_id: 2" da abbinare all'operatore $ Firstn. Successivamente, inseriamo il campo "FirstListValue" all'interno dell'operatore $ Project. Successivamente, abbiamo un operatore $ Firstn nel campo proiettato "FirstListValue" insieme al suo parametro.
"Input" è il primo parametro impostato nell'operatore $ Firstn con il campo "$ list". Quindi, il parametro "N" è specificato con l'operatore $ cond che imposta la condizione IF-ELSE. All'interno del "if", abbiamo un'altra condizione che è "$ gt: [" $ price ", 550]". Se il prezzo $ è maggiore del valore di "550", viene recuperato l'elemento "1". Altrimenti, l'opzione "else" visualizza elementi "3".
db.Prodotti alimentari.aggregato([
$ match: _id: 2,
$ Progetto:
"FirstListValue":
$ FirstN: Input: "$ List",
n: $ cond: if: $ gt: ["$ price", 550], quindi: 1, else: 3
])
L'operatore $ Firstn emette tre elementi dell'array di $ list perché il valore $ prezzo è "350" del documento dato che non è maggiore del valore specificato.
[_id: 2, FirstListValue: ['Beetroot', 'Ravanello', 'rapa']]
Conclusione
Questo articolo ha esplorato il MongoDB $ First e gli operatori $ Firstn. Innanzitutto, gli esempi di $ First Operator sono forniti con i diversi casi. L'esempio del primo operatore $ ha ottenuto il primo valore dell'array. Quindi, il primo operatore $ restituisce il valore null poiché il campo array ha il valore mancante. Successivamente, l'esempio di eccezione dell'operatore $ viene fornito per un argomento non valido. L'operatore $ Firstn è specificato per raccogliere l'ennesimo elementi dall'array. Inoltre, l'operatore $ Firstn raccoglie gli elementi in base alla condizione che viene data al parametro "N".