Proiezione MongoDB

Proiezione MongoDB
La funzione di proiezione di MongoDB ci consente di estrarre solo i dati necessari da un documento piuttosto che l'intera raccolta di dati. La proiezione utilizza il metodo Find () in cui i campi sono specificati per essere restituiti esplicitamente e aggiunti con un valore di "1" o "0". Quando un parametro di proiezione ha un valore di 1, visualizzerà i documenti in base alla ricerca. E per scomparire qualsiasi campo, il parametro di proiezione inserisce il valore "0". La proiezione è un fattore importante nell'identificazione dei dati specifici dell'utente all'interno di una determinata raccolta di dati.

Come si utilizza la proiezione per visualizzare i dati richiesti in MongoDB?

La proiezione MongoDB si basa sul metodo di Find () corrente. Pertanto, possiamo specificare qualsiasi query di proiezione che richiede modifiche significative al metodo di ricerca () corrente. Il modo in cui la proiezione viene utilizzata in MongoDB è così: "Find (, " field_name ":" value ")". La sintassi di proiezione in MongoDB è uguale al metodo find () ma aggiungiamo una serie di argomenti nel metodo find (). Questo insieme di argomenti notifica l'istanza di MongoDB quale campo di dati restituirà. Abbiamo usato la collezione "Cake" in cui è implementata la proiezione MongoDB. Ma per questo, dobbiamo aggiungere documenti a quella raccolta. Abbiamo usato il metodo InsertMany () di MongoDB per l'inserimento del documento. La domanda di inserire i documenti nella collezione "Cake" è la seguente:

db.Torta.InsertMany ([

"_id": 0,
"Nome": "Apple Cake",
"Calorie": 90.06,
"Pounds": 2,
"Prezzo": 540,
"Stato": "Disponibile",
"Topping": [Jellyprice: 50, Sprinkleprice: 90, FrostEdPrice: 90]
,

"_id": 1,
"Nome": "Cake al cioccolato",
"Calorie": 150.00,
"Pounds": 1,
"Prezzo": 600,
"Stato": "Disponibile",
"Topping": [Jellyprice: 50, Sprinkleprice: 90, FrostEdPrice: 90]
,

"_id": 2,
"Nome": "Cake Ice",
"Calorie": 102.56,
"Pounds": 3,
"Prezzo": 640,
"Stato": "Non disponibile",
"Topping": [Jellyprice: 50, Sprinkleprice: 90, FrostEdPrice: 90]
,

"_id": 3,
"Nome": "Cape Cake",
"Calorie": 180.41,
"Pounds": 2,
"Prezzo": 720,
"Stato": "Disponibile",
"Topping": [Jellyprice: 50, Sprinkleprice: 90, FrostEdPrice: 90]

])

Qui, abbiamo inserito con successo il documento mostrato nell'immagine per l'utilizzo della tecnica di proiezione.

Esempio n. 1: proiezione MongoDB per il campo specificato.

Qui, abbiamo recuperato il singolo campo passando il parametro del progetto al metodo find (). Abbiamo la seguente query in cui il metodo find () prende i criteri di selezione vuoti e il parametro di proiezione. Il parametro di proiezione inserisce il campo "nome" che viene assegnato al valore numerico "1" per visualizzare solo quel campo come output. _Id è impostato con il valore "0" perché il metodo find () restituisce sempre il campo _id nell'output.

db.Torta.find (, name: 1, _id: 0)

Tutti i documenti sono mostrati di seguito ma con un solo "nome" di campo insieme al suo valore corrispondente perché la proiezione viene applicata a quel campo.

Esempio n. 2: proiezione MongoDB per più campi.

Ora stiamo specificando i più campi per il parametro di proiezione del metodo find () per visualizzare i dati solo per quei campi dai documenti. Qui, abbiamo una query di proiezione impostata con il campo "nome" e "calorie". Poiché a questi campi viene assegnato il valore "1", il che indica che i dati di solo questi campi vengono recuperati durante l'esecuzione della query di proiezione.

db.Torta.find (, "_id": 0, "nome": 1, "calorie": 1)

Pertanto, abbiamo recuperato con successo i dati solo di quei campi impostati come parametro di proiezione.

Esempio n. 3: proiezione MongoDB per la condizione specificata.

Abbiamo fornito la dichiarazione di proiezione nell'esempio sopra menzionato senza i criteri di selezione. Ora stiamo usando l'istruzione di proiezione insieme alla condizione. Nella query di proiezione di seguito, abbiamo impiegato il metodo find () in cui prima abbiamo impostato i criteri di selezione che il campo "stato" dovrebbe essere uguale al valore "disponibile". Quindi, inseriamo i campi "sterline" e "prezzo" come parametro di proiezione con il valore "1". Questi campi hanno visualizzato solo i dati dei documenti che soddisfacevano la condizione "Stato:" Disponibile ".

db.Torta.Trovare(
status: "disponibile",
"sterline": 1, "prezzo": 1
)

Abbiamo solo tre documenti il ​​cui stato è "disponibile" che è mostrato nell'output con i campi impostati come proiezione.

Esempio n. 4: proiezione mongodb per il campo specificato ad eccezione dei campi esclusi.

In questa query di proiezione, abbiamo segnato i campi con il valore "0" per escluderli dal documento restituito. Abbiamo distribuito il metodo find () in cui vengono forniti l'espressione "Stato: disponibile" e l'insieme di argomenti di proiezione. Il parametro di proiezione ha fornito ai campi "stato" e "prezzo" il valore "0". Il valore "0" indica che questi campi non appariranno quando viene restituito il documento dei criteri indicati.

db.Torta.find (status: "disponibile", status: 0, prezzo: 0)

Quei campi il cui stato è "disponibile" nei documenti sono visualizzati nell'immagine tranne lo stato del campo escluso e il prezzo.

Esempio n. 5: operatore di proiezione mongodb "$ Slice".

La query di proiezione ottimizza la ricerca e riduce il flusso di lavoro quando vengono utilizzati i suoi operatori. Abbiamo diversi operatori di query di proiezione da cui abbiamo usato l'operatore $ slice in questo esempio. L'operatore di $ Slice limita il numero di documenti restituiti come produzione della query di proiezione. Qui, abbiamo una query di proiezione dell'operatore $ Slice. Abbiamo invocato il metodo find () che è definito prima con il parametro vuoto in cui è impostata la condizione. Successivamente, abbiamo impostato il metodo Find () con il parametro di proiezione. Il parametro di proiezione è specificato con l'istruzione "Pounds: $ Slice: 3". Il campo "sterline" utilizza l'operatore di slice $ che è impostato con il valore "3" per limitare i documenti restituiti nell'output.

db.Torta.find (, sterline: $ slice: 3)

La seguente immagine ha visualizzato solo tre documenti nell'output perché l'operatore di $ slice dell'istruzione di proiezione lo limita a un determinato valore.

Esempio # 6: operatore di proiezione MongoDB "$ ELEMATCH".

Ora, abbiamo usato un altro operatore di proiezione "$ ELEMATCH". L'operatore di $ Elemmatch proietta il primo valore abbinato da un array. Le espressioni di query $ text non sono supportate dal $ ELEMMATCH dell'operatore di proiezione. Inoltre, è richiesta la condizione esplicita per l'operatore di proiezione di $ Elemmatch. Abbiamo impostato una query di proiezione in cui i criteri di selezione vengono prima assegnati al metodo find () e la proiezione è implementata. Per il parametro di proiezione, abbiamo fornito il campo "topping". Il campo "topping" ha l'operatore $ elematch in cui è assegnata la condizione "spinkleprice": 90 per abbinare gli elementi dall'array.

db.Torta.Find ("Nome": "Ice Cake", topping: $ ELEMMATCH: "Sprinkleprice": 90)

Questi sono i documenti che abbiamo recuperato nell'output dopo l'operatore $ Elematch della query di proiezione.

Conclusione

La guida ha esplorato la funzionalità della proiezione MongoDB. La proiezione MongoDB si riferisce alla raccolta solo dei dati pertinenti piuttosto che all'intero set di dati di un documento. Abbiamo imparato come utilizzare la query di proiezione per acquisire i dati necessari dalla raccolta data. Abbiamo eseguito diverse query di proiezione per includere ed escludere i campi specifici utilizzando i valori "1" e "0". Inoltre, abbiamo anche utilizzato gli operatori di proiezione "$ Slice" e "$ Elematch" nella query di proiezione.