Funzione $ mongodb personalizzata

Funzione $ mongodb personalizzata
MongoDB è un database potente e flessibile orientato ai documenti che consente agli sviluppatori di archiviare e recuperare i dati in un formato simile a JSON. Una delle caratteristiche più potenti di MongoDB è la sua capacità di utilizzare funzioni $ $ per manipolare e interrogare i dati. I metodi JavaScript lato server personalizzati, comunemente indicati come "funzioni memorizzate", sono supportati da MongoDB e possono essere utilizzati nelle fasi del linguaggio delle query e della pipeline aggregate. Queste funzioni possono essere specificate usando il DB.sistema.raccolta JS e possono essere utilizzati nelle query o nella pipeline aggregata utilizzando l'operatore di $ funzioni $. In questo articolo, daremo un'occhiata ad alcuni esempi di funzioni $ e l'output che producono.

Crea collezione

In primo luogo, controlleremo la raccolta disponibile nel nostro database. Pertanto, la shell MongoDB è stata lanciata perfettamente dopo essersi connessa con la sua stringa di connessione. L'istruzione MongoDB "Mostra collezioni" è stata eseguita per visualizzare tutte le raccolte che abbiamo. Questo comando non restituisce nulla sulla shell perché non ci sono raccolte nel nostro database "test" come di seguito. Pertanto, dobbiamo prima creare una nuova collezione e poi iniziare a lavorarci.

Test> Mostra collezioni

Per aggiungere o creare una nuova raccolta di dati nel database MongoDB, dobbiamo utilizzare l'istruzione "DB" seguita dal metodo createcollection. Il metodo CreateCollection è specificamente progettato per creare nuove collezioni che prendono il nome di una raccolta da creare nel suo argomento. Nelle istruzioni seguenti, abbiamo nominato la raccolta come "test". L'output del comando restituisce lo stato di successo: 0 per errore e 1 per il successo. Il comando seguente restituisce 1, il che significa che il comando ha avuto successo e la raccolta è stata creata.

Test> db.CreateCollection ("Test")
ok: 1

Inserire i record

Dopo aver aggiunto una nuova raccolta al database, è necessario aggiungere record perché la raccolta potrebbe essere vuota al momento della creazione. Pertanto, dopo aver usato la funzione insertmany di MongoDB nell'istruzione "DB", abbiamo aggiunto 5 documenti alla raccolta "Test" contemporaneamente. La funzione insertmany () è specifica per l'inserimento di più record alla volta. Tutti e 5 i record contengono un totale di 3 campi ciascuno: titolo, città e area. Il campo "Titolo" è di tipo "String", il campo dell'area è di tipo intero e il campo della città è nell'array di tipo stringa contenente elementi di stringa. L'output di questa istruzione mostra il riconoscimento mostrando gli ID inseriti di ciascun documento assegnato separatamente dal database MongoDB.

Test> db.Test.InsertMany ([Titolo: "USA", Città: ["NewYork", "Chicago", "Boston"], Area: 234567,
... Titolo: "Emirati Arabi Uniti", Città: ["Dubai", "Abudhabi", "Sharjah"], Area: 786907,
... Titolo: "Asia", Città: ["Bangkok", "Tokyo", "Pechino"], Area: 984567,
... Titolo: "Europa", Città: ["Italia", "Istanbul", "Londra"], Area: 1475997,
... Titolo: "Antartide", Città: ["Villa Las Estrellas", "King Edward Point", "Grytvkin"], Area: 2835997])

riconosciuto: vero,
inseritedids:
'0': objectId ("63cffd7d64f216739d14b251"),
'1': objectId ("63cffd7d64f216739d14b252"),
'2': ObjectId ("63CFFD7D64F216739D14B253"),
'3': objectId ("63cffd7d64f216739d14b254"),
'4': ObjectId ("63CFFD7D64F216739D14B255")

Visualizza record

Dopo l'inserimento di tutti i record nella raccolta "test" del database "test" di MongoDB, siamo pronti a dare un'occhiata a tutti loro per verificare l'inserimento. Pertanto, la funzione "Trova" di MongoDB può essere eliminata nell'istruzione "DB" a questo scopo. Assicurati di utilizzare il nome di una raccolta tra la parola chiave "db" e la funzione find (). I parametri della funzione "trova" devono contenere le staffe ricci vuote senza specificare alcun nome di campo. Le staffe vuote considerano di recuperare tutti i record dalla raccolta con tutti i campi di dati mentre specificano uno o più campi che portano a una visualizzazione record singola o solo specificata sulla shell. Pertanto, l'output per questa istruzione, con le staffe ricci vuote nella funzione find (), ha visualizzato tutti e 5 i record della raccolta "Test" ciascuno con tutti e 3 i campi: il titolo, la città e l'area. Inoltre, ogni record può essere identificato separatamente da un altro usando il campo "_id" assegnato dal database MongoDB.

Test> db.Test.Trovare()
[
_id: objectId ("63cffd7d64f216739d14b251"), titolo: "USA", città: ["NewYork", "Chicago", "Boston"], Area: 234567,
_id: objectId ("63cffd7d64f216739d14b252"), titolo: "EAE", città: ['Dubai', 'Abudhabi', 'Sharjah'], Area: 786907,
_id: objectId ("63cffd7d64f216739d14b253"), titolo: 'Asia', città: ['Bangkok', 'Tokyo', 'Pechino'], area: 984567,
_id: objectId ("63cffd7d64f216739d14b254"), titolo: "Europa", città: ["Italia", "Istanbul", "London"], Area: 1475997,
_id: objectId ("63cffd7d64f216739d14b255"), titolo: "Antartide", città: ["Villa las estrellas", "King Edward Point", "Grytvkin"], Area: 2835997
"

Esempio # 01:

Ora che abbiamo finito con l'inserimento e la visualizzazione dei record dalla raccolta "test", siamo finalmente pronti ad applicare la funzione personalizzata $ per eseguire operazioni personalizzabili sui campi. Ad esempio, si desidera creare un nuovo campo di runtime nella raccolta "test" che conterrà dettagli sul paese, sulle sue città e sull'area che contiene in un'unica frase. Per questo, dobbiamo utilizzare tutti e tre i campi della raccolta "Test" all'interno dell'operatore di funzione $ personalizzato utilizzato nella query di funzione "aggregata" mostrata di seguito. La funzione personalizzata prende tutti e tre i campi della raccolta "test" in parametri per creare un nuovo campo "dettaglio". L'istruzione di ritorno ha utilizzato questi tre campi per fare una frase e visualizzarla sulla shell. È necessario specificare i campi di raccolta come "Args" e la lingua impostata su "JS". L'output mostra un nuovo campo di runtime "dettaglio" che fornisce informazioni esatte in una frase.

Test> db.Test.Aggregate ([$ AddFields: dettaglio: $ function: body: function (title, città, area) return '$ title ha $ City Cities con $ area area ...', args: ["$ title", "$ City", "$ area"], lang: "js"])
[
_id: objectId ("63cffd7d64f216739d14b251"), titolo: "USA", città: ["Newyork", "Chicago", "Boston"], Area: 234567, dettaglio: "USA ha NewYork, Chicago, Boston Cities con 234567 Area ... ',
_id: objectId ("63cffd7d64f216739d14b252"), titolo: 'EAE', città: ['Dubai', 'Abudhabi', 'Sharjah'], area: 786907, dettaglio: 'EAE ha Dubai, Abudhabi, Sharjah Cities con 786907 ... ',
_id: objectId ("63cffd7d64f216739d14b253"), titolo: 'Asia', città: ['Bangkok', 'Tokyo', 'Pechino'], Area: 984567, dettaglio: 'Asia ha Bangkok, Tokyo, Beijing Cities con 984567 area ... ',
_id: objectId ("63cffd7d64f216739d14b254"), titolo: "Europa", città: ["Italia", "Istanbul", "Londra"], Area: 1475997, Dettaglio: "Europa ha l'Italia, Istanbul, London Cities con 147597 Area ... ',
_id: objectId ("63cffd7d64f216739d14b255"), titolo: "Antartide", città: ["Villa las estrellas", "King Edward Point", "Grytvkin"], Area: 283597, dettaglio: "Antarctica ha Estrellas, King King" Edward Point, Grytvkin Cities con area 2835997 ... '
"

Esempio # 02:

Diamo un'occhiata a un'altra illustrazione per utilizzare la funzione $ $ in MongoDB. Qui, stiamo utilizzando l'operatore $ ADDFIELDS seguito dal nome di un campo "area Tripled" che vogliamo creare utilizzando l'operatore $ funzioni $. La funzione personalizzata prende 1 campo "area" come argomento e la parola chiave "let" ci consente di dichiarare una variabile "tripla" che prende un valore come valore di campo "area" moltiplicato per 3. L'istruzione di ritorno restituirà e visualizzerà il risultato calcolato nella tripla variabile. Pertanto, l'output dell'istruzione allegata di seguito mostra un totale di 5 campi per ciascun documento del campo di prova. Il campo "Area Tripled" è stato generato dall'uso di una funzione personalizzata che mostra l'area per tutte e tre le città elencate nel campo "Città" di ciascun documento moltiplicando il valore del campo dell'area per 3.

Test> db.Test.Aggregate ([$ AddFields: areaTripled: $ function: body: function (area) let triple = area*3; return '$ triple', args: ["$ area"], lang: " js "])
[
_id: objectId ("63cffd7d64f216739d14b251"), titolo: "USA", città: ["NewYork", "Chicago", "Boston"], Area: 234567, Area Tripled: "703701",
_id: objectId ("63cffd7d64f216739d14b252"), titolo: "EACE", città: ["Dubai", "Abudhabi", "Sharjah"], Area: 786907, Areatripled: '2360721',
_id: objectId ("63cffd7d64f216739d14b253"), titolo: "Asia", città: ["Bangkok", "Tokyo", "Pechino"], area: 984567, area di area: "2953701",
_id: objectId ("63cffd7d64f216739d14b254"), titolo: "Europa", città: ["Italia", "Istanbul", "Londra"], Area: 1475997, Area Tripled: "4427991",
_id: objectId ("63cffd7d64f216739d14b255"), titolo: "Antartide", città: ["Villa las estrellas", "King Edward Point", "Grytvkin"], area: 283597, area area: "850791 ']

Conclusione

L'articolo si trova sulle funzioni personalizzate di MongoDB e dimostra come un ambiente MongoDB sia così potente usando tali funzioni: in quanto queste funzioni consentono l'inserimento di dati simili a JSON e il suo recupero. Successivamente, abbiamo creato la raccolta e inserito i record prima di utilizzare l'operatore di funzione $ personalizzati. Dopo aver impostato l'ambiente, abbiamo utilizzato due esempi per illustrare l'uso della funzione $. Gli esempi hanno coperto l'uso di un operatore di funzionalità $ personalizzati per creare un nuovo campo di dati con l'aiuto di campi già inseriti della raccolta ed eseguire anche calcoli ove possibile tramite l'uso della dichiarazione variabile attraverso l'uso della parola chiave "let".