MongoDB Documento di query: db.collection.find() con esempio

⚡ Riepilogo intelligente

MongoDB Le operazioni di query sui documenti recuperano i record da una collezione utilizzando la funzione db.collection.find(). Il metodo restituisce tutti i documenti per impostazione predefinita, accetta criteri di filtro come la corrispondenza dei campi e l'operatore $gt e formatta i risultati con il comando forEach(printjson).

  • 🔍 Funzione find(): Il metodo db.collection.find() recupera i documenti da un MongoDB raccolta, che restituisce tutti i documenti quando non viene specificato alcun filtro.
  • 🎯 Criteri di filtro: Passando un oggetto query, ad esempio {EmployeeName: “Smith”}, vengono restituiti solo i documenti che corrispondono alla condizione.
  • ➕ domanda Operatori: Gli operatori di selezione come $gt, $lt e $in affinano i risultati, ad esempio trovando i dipendenti con un ID maggiore di 2.
  • 🖨️ Readable Produzione: Concatenando forEach(printjson) si stampa ogni documento restituito in un formato JSON pulito.
  • 🧾 Proiezione: Un secondo argomento della funzione find() seleziona i campi da includere o escludere dai risultati.

Il metodo per recuperare o ottenere dati da a MongoDB il database viene eseguito utilizzando MongoDB interrogazioni. Durante l'esecuzione di un'operazione di query, è anche possibile utilizzare criteri o condizioni che possono essere utilizzati per recuperare dati specifici dal database.

MongoDB fornisce una funzione chiamata db.raccolta.find() che viene utilizzato per il recupero di documenti da a MongoDB Banca dati.

Nel corso di questo MongoDB tutorial sulle query, vedrai come questa funzione viene utilizzata in vari modi per raggiungere lo scopo di recupero dei documenti.

Che cos'è db.collection.find() in MongoDB?

Il metodo db.collection.find() è il modo principale per leggere i documenti da un MongoDB collezione. Quando la chiami senza argomenti, restituisce tutti i documenti della collezione. Quando passi un oggetto query, restituisce solo i documenti che corrispondono ai criteri specificati, in modo da poter recuperare esattamente i dati di cui hai bisogno.

Il metodo restituisce un cursore, che è un puntatore al set di risultati piuttosto che ai documenti stessi. In genere si scorre il cursore per visualizzare i risultati, spesso con forEach(printjson) per mostrare ogni documento in un formato JSON leggibile. Se è necessario solo un singolo record, MongoDB fornisce anche findOne(), che restituisce il primo documento corrispondente invece di un cursore. Insieme, find() e findOne() coprono la maggior parte delle operazioni di lettura in un MongoDB database, dal recupero di intere collezioni al filtraggio in base a valori di campi specifici.

MongoDB Domanda di base Operazioni

La base MongoDB gli operatori di query coprono operazioni semplici come ottenere tutti i documenti in un file MongoDB collezione. Diamo un'occhiata a un esempio db.collection.find di come possiamo ottenere questo risultato.

Tutto il nostro codice verrà eseguito nel file MongoDB JavaCopione shell dei comandi. Considera che abbiamo una raccolta denominata "Employee" nel nostro MongoDB database ed eseguiamo il comando seguente.

MongoDB Domanda di base Operazioni
MongoDB Operazione di query di base

Code Spiegazione:

  1. Employee è il nome della raccolta nel file MongoDB banca dati
  2. Migliori MongoDB find query è una funzione integrata che viene utilizzata per recuperare i documenti nella raccolta.

Se il comando viene eseguito correttamente, verrà visualizzato il seguente output per il MongoDB trova esempio

Produzione:

MongoDB Domanda di base Operazioni

L'output mostra tutti i documenti presenti nella raccolta.

Possiamo anche aggiungere criteri alle nostre query in modo da poter recuperare i documenti in base a determinate condizioni.

MongoDB Esempio di query – 1

Diamo un'occhiata a un paio di MongoDB chiedere esempi di come possiamo raggiungere questo obiettivo.

db.Employee.find({EmployeeName : "Smith"}).forEach(printjson);

Code Spiegazione:

  1. Qui vogliamo trovare un dipendente il cui nome è "Smith" nella raccolta, quindi inseriamo i criteri di filtro come EmployeeName: "Smith"

Se il comando viene eseguito correttamente, verrà visualizzato il seguente output

Produzione:

MongoDB Esempio di query

L'output mostra che viene restituito solo il documento che contiene "Smith" come nome del dipendente.

MongoDB Esempio di query – 2

Ora in questo MongoDB query tutorial, diamo un'occhiata a un altro esempio di codice che utilizza il criterio di ricerca maggiore di. Quando questo criterio è incluso, ricerca effettivamente quei documenti in cui il valore del campo è maggiore del valore specificato.

db.Employee.find({Employeeid : {$gt:2}}).forEach(printjson);

Code Spiegazione:

  1. Qui vogliamo trovare tutti gli Employee il cui ID è maggiore di 2. $gt è chiamato operatore di selezione della query e ciò che significa è utilizzare l'espressione maggiore di.

Se l' MongoDB il comando select fields viene eseguito correttamente, verrà visualizzato il seguente output

Produzione:

MongoDB Esempio di query

Vengono restituiti tutti i documenti in cui l'ID dipendente è maggiore di 2.

MongoDB domanda OperaTors

MongoDB Filtra i documenti utilizzando gli operatori di selezione della query all'interno dei criteri di find(). Questi operatori consentono di trovare corrispondenze con intervalli, elenchi e negazioni, anziché solo con valori esatti. La tabella seguente elenca gli operatori più comuni:

Operator Significato Esempio
$gt Maggiore di {Employeeid: {$gt: 2}}
$ lt Less di {Employeeid: {$lt: 5}}
$gte Maggiore o uguale a {età: {$gte: 18}}
$lte Less maggiore o uguale a {età: {$lte: 60}}
$ne Non uguale a {stato: {$ne: “attivo”}}
$in Corrisponde a qualsiasi valore in un elenco {reparto: {$in: [“Risorse umane”,”IT”]}}

È inoltre possibile combinare le condizioni con $and e $or per creare query più precise. La scelta dell'operatore corretto mantiene le query efficienti e restituisce solo i documenti necessari all'applicazione.

Come utilizzare la proiezione con find()

Per impostazione predefinita, il metodo find() restituisce l'intero documento, inclusi tutti i campi. Spesso, però, sono necessari solo pochi campi, come ad esempio un nome o un ID. MongoDB consente di controllare questo aspetto tramite una proiezione, ovvero un secondo argomento passato a find() che elenca i campi da includere o escludere.

Per includere solo campi specifici, impostarli a 1 nell'oggetto di proiezione. La seguente query restituisce solo il campo EmployeeName per ogni documento:

db.Employee.find({}, {EmployeeName: 1}).forEach(printjson);

MongoDB Il campo _id viene sempre restituito a meno che non venga escluso esplicitamente. Per nasconderlo, impostare _id a 0:

db.Employee.find({}, {EmployeeName: 1, _id: 0}).forEach(printjson);

È anche possibile escludere i campi anziché includerli, impostandoli a 0. Ad esempio, la query seguente restituisce tutti i campi tranne Employeeid:

db.Employee.find({}, {Employeeid: 0}).forEach(printjson);

Tieni presente che non è possibile combinare inclusione ed esclusione nella stessa proiezione, ad eccezione del campo _id. L'utilizzo della proiezione riduce la quantità di dati trasferiti dal server, rendendo le query più veloci e le risposte più facili da leggere, soprattutto in presenza di documenti di grandi dimensioni.

DOMANDE FREQUENTI

La funzione find() restituisce un cursore a tutti i documenti che corrispondono alla query, quindi può restituire molti risultati. La funzione findOne() restituisce solo il primo documento corrispondente come singolo oggetto, oppure null se non ne trova nessuno.

Collega le funzioni sort() e limit() al cursore di find(). Ad esempio, find().sort({age:1}).limit(5) restituisce i cinque record più giovani. Usa 1 per l'ordinamento crescente e -1 per l'ordinamento decrescente in sort().

Utilizza countDocuments() con lo stesso filtro, ad esempio db.Employee.countDocuments({EmployeeName:”Smith”}). Restituisce il numero di documenti corrispondenti senza recuperarli, il che è più veloce rispetto alla lettura e al conteggio dell'intero set di risultati.

L'IA può convertire una richiesta in linguaggio naturale in una query find() con gli operatori e la proiezione corretti, e spiegare ogni parte. Testa sempre la query su dati di esempio prima di eseguirla in produzione.

Sì. L'intelligenza artificiale può leggere un piano di query, individuare indici mancanti o operatori inefficienti e suggerire indici o filtri riscritti. Questo aiuta gli sviluppatori a migliorare più rapidamente le prestazioni del metodo find() su grandi collezioni.

Riassumi questo post con: