MongoDB Findone query

MongoDB Findone query
Le collezioni in mongodb sono simili a una tabella in un RDBMS. Qui, recuperiamo un determinato documento dalla collezione MongoDB con il metodo Findone (). Il metodo Findone () è un metodo integrato di MongoDB che restituisce un singolo documento quando si raggiungono i criteri di query definiti. Se più di un documento corrisponde alla query, il primo nell'ordine naturale viene restituito con il metodo Findone (). In parole semplici, l'ordine dei documenti è uguale all'ordine di inserimento dei documenti nella raccolta.

Come utilizzare la query FindOne in MongoDB

Il metodo Findone () restituisce il singolo documento del nome della raccolta fornita quando esegue nella shell MongoDB. Inoltre, il metodo findone () prende anche il parametro che include l'espressione condizionale e la proiezione. Il valore parametrico è discusso nel seguente esempio in esecuzione. Prima di questo, abbiamo incorporato i documenti all'interno della collezione "Mobils". Usiamo la query InsertMany per aggiungere i documenti all'interno della nostra collezione "mobile". La query di inserzione è fornita di seguito:

db.Mobile.InsertMany ([

_id: 1,
Brand: "Oppo",
Nome: "Oppo F21 Pro",
Garanzia: "5",
Prezzo: 51000
,

_id: 2,
Brand: "Samsung",
Nome: "Samsung A12",
Garanzia: "2",
Prezzo: 45000
,

_id: 3,
Brand: "OnePlus",
Nome: "OnePlus 8 Pro",
Garanzia: "6",
Prezzo: 900000
,

_id: 4,
Brand: "Infinix",
Nome: "Infinix Note 7",
Garanzia: "1",
Prezzo: 67000
,

_id: 5,
Brand: "Vivo",
Nome: "Vivo S1",
Garanzia: "3",
Prezzo: 21600

])

Il risultato, che si vede nella seguente immagine, mostra che i documenti vengono aggiunti alla raccolta "Mobili". Ora, utilizziamo questa raccolta di campioni "Mobiles" per mostrare il funzionamento della query FindOne per recuperare il singolo documento.

Esempio 1: Utilizzo della query FindOne in MongoDB

Qui, invochiamo il metodo Findone () con i parametri vuoti solo per vedere il metodo funzionante del Findone () senza alcun valore parametrico. Abbiamo una domanda in cui viene fornita la collezione "mobile" e il metodo findone () viene chiamato tramite la collezione "mobile".

db.Mobile.trova uno()

La query di Findone (), al momento dell'esecuzione, restituisce il singolo e il primo documento della collezione "mobile" perché non vi è alcuna condizione impostata per acquisire il documento specifico. Quindi, eseguendo il metodo findone () con specifiche di query vuote, restituisce sempre il primo documento della raccolta.

Esempio 2: Utilizzo della query FindOne in MongoDB fornendo il campo

Qui, utilizziamo il metodo findone () con un parametro di query. Il parametro di query è definito come "nome:" Vivo s1 "" che trova il documento il cui campo "Nome" è uguale al valore "Viva S1". Se vengono recuperati due o più documenti con gli stessi risultati, solo il primo documento abbinato viene recuperato dal metodo Findone (). Abbiamo il seguente metodo Findone () con le specifiche di query:

db.Mobile.findone (name: "vivo s1")

Dal momento che abbiamo solo un documento il cui campo "Nome" contiene il valore "Vivo S1" nella raccolta "mobile" che è visto come un documento risultante nella seguente immagine:

Esempio 3: Utilizzo della query FindOne in MongoDB fornendo il valore del campo di non esistenza

Quando il documento non è abbinato alle specifiche di query fornite, il metodo Findone () restituisce il valore "null" nell'output. Qui, diamo una query all'interno del metodo findone () in cui impostiamo i criteri "_id: 6". Il campo _ID è assegnato con un valore di "6" che non è incluso nella nostra raccolta di "Mobili" MongoDB.

db.Mobile.findone (_ id: 6)

Come possiamo vedere, la stringa null si ottiene dopo aver eseguito la query FindOne precedente. Questo perché il valore "6" _id corrisponde a uno qualsiasi dei documenti "mobili".

Esempio 4: Utilizzo della query FindOne in MongoDB fornendo la proiezione

Il metodo Findone () genera un documento che include solo i campi di proiezione se viene specificato un argomento di proiezione. Il parametro di proiezione qui visualizza quei campi inclusi. Abbiamo la seguente query FindOne in cui impostiamo i criteri "marchio:" samsung "" e quindi impostiamo il parametro di proiezione che include l'espressione "Price: 1". Il metodo Findone () si abbina prima al documento con i criteri indicati e quindi visualizza il campo "prezzo" di quel particolare documento perché la proiezione è impostata sul campo "prezzo". Il "prezzo" è dato con un valore "1" e il valore "1" è indicato come vero nella proiezione di MongoDB.

db.Mobile.FindOn (Brand: "Samsung", Price: 1)

La query FindOne corrisponde al documento il cui "marchio" ha il valore "samsung" e visualizza il campo del documento "prezzo" nell'output. Per impostazione predefinita, il campo "_id" è l'unico campo che viene sempre visualizzato durante l'esecuzione del metodo findone ().

Esempio 5: Utilizzo della query FindOne in MongoDB fornendo la proiezione per escludere i campi

Nell'esempio del metodo Findone () precedente, utilizziamo il parametro di proiezione all'interno del metodo findone () per includere i campi specifici. Ora, utilizziamo il metodo findone () per identificare il documento con i criteri abbinati. Quindi, il parametro di proiezione esclude il campo particolare di quel documento. Questa spiegazione può essere facilmente compresa con il seguente comando di query. Imposta il metodo Findone () con i criteri di selezione “Brand:“ Oppp ”. Il metodo FindOne () corrisponde al documento della collezione "Mobils" il cui valore "Brand" è "Oppo". Quindi, escludere i campi "_id", "nome" e "prezzo" dal documento abbinato perché il valore di proiezione a questi campi è assegnato con il valore "0" che significa falso.

db.Mobile.trova uno(
Brand: "Oppo",
_id: 0, nome: 0, prezzo: 0
)

Lì, abbiamo un documento che viene recuperato come output dalla query FindOne i cui campi "marchio" e "garanzia" vengono visualizzati solo e tutti gli altri campi sono esclusi.

Esempio 6: Utilizzo della query FindOne in MongoDB fornendo l'operatore condizionale

Questo esempio è il metodo findone () con le specifiche di query come operatore condizionale "$ o". Il metodo findOne () corrisponde solo al documento che soddisfa il requisito di $ o dell'operatore. Facciamo una domanda su questo. Abbiamo una seguente query in cui distribuiamo il metodo findone () e quindi impostiamo il $ o l'operatore al suo interno. L'operatore $ o contiene le due espressioni: "nome: OnePlus 8 Pro" e "garanzia: $ gt: 3". Il valore "Nome" dovrebbe essere "OnePlus 8 Pro" e il valore "Garanzia" dovrebbe essere maggiore del valore di "3". Da queste espressioni, una delle espressioni dovrebbe essere vera come richiesto dal $ o dall'operatore.

db.Mobile.trova uno(

$ o: [
Nome: "OnePlus 8 Pro",
Garanzia: $ gt: 3]

)

All'interno dell'output, otteniamo il singolo documento dal Findone () che soddisfa sia l'espressione dell'operatore $ o.

Conclusione

L'obiettivo dell'articolo è quello di esplorare il metodo Findone () in MongoDB con l'implementazione del codice. Qui, abbiamo visto il metodo funzionante del Findone () senza specifiche di query e con le specifiche di query. Quindi, abbiamo usato il metodo findone () per utilizzare il parametro di proiezione per visualizzare i campi particolari. Successivamente, abbiamo trovato il documento con il metodo findone () che prende l'operatore condizionale come criteri di selezione.