MongoDB Querydocument: db.collection.find() met voorbeeld

โšก Slimme samenvatting

MongoDB De Query Document-bewerking haalt records op uit een collectie met behulp van de db.collection.find()-functie. De methode retourneert standaard alle documenten, accepteert filtercriteria zoals veldovereenkomsten en de $gt-operator, en formatteert de resultaten met de forEach(printjson)-opdracht.

  • ๐Ÿ” find() functie: De methode db.collection.find() haalt documenten op uit een MongoDB collectie, die alle documenten retourneert wanneer er geen filter is opgegeven.
  • ๐ŸŽฏ Filtercriteria: Door een query-object door te geven, zoals {EmployeeName: โ€œSmithโ€}, worden alleen de documenten geretourneerd die aan de voorwaarde voldoen.
  • โž• Vraag OperaTorens: Selectieoperatoren zoals $gt, $lt en $in verfijnen de resultaten, bijvoorbeeld door medewerkers te vinden met een id groter dan 2.
  • ๐Ÿ–จ๏ธ Readable Output: Door `forEach(printjson)` aan elkaar te koppelen, wordt elk geretourneerd document in een overzichtelijk JSON-formaat afgedrukt.
  • ๐Ÿงพ Projectie: Een tweede argument voor find() selecteert welke velden wel of niet in de resultaten moeten worden opgenomen.

De methode voor het ophalen of ophalen van gegevens uit een MongoDB database wordt uitgevoerd met behulp van MongoDB query's. Tijdens het uitvoeren van een querybewerking kan men ook criteria of voorwaarden gebruiken die kunnen worden gebruikt om specifieke gegevens uit de database op te halen.

MongoDB biedt een functie genaamd db.collectie.find() die wordt gebruikt voor het ophalen van documenten uit een MongoDB database.

In de loop hiervan MongoDB query-tutorial, zult u zien hoe deze functie op verschillende manieren wordt gebruikt om het doel van het ophalen van documenten te bereiken.

Wat is db.collection.find() in MongoDB?

De methode db.collection.find() is de belangrijkste manier om documenten uit een database te lezen. MongoDB collectie. Wanneer je de functie zonder argumenten aanroept, retourneert deze alle documenten in de collectie. Wanneer je een query-object doorgeeft, retourneert de functie alleen de documenten die aan de opgegeven criteria voldoen, zodat je precies de gegevens kunt ophalen die je nodig hebt.

De methode retourneert een cursor, een verwijzing naar de resultatenset in plaats van naar de documenten zelf. Meestal doorloop je de cursor om de resultaten weer te geven, vaak met `forEach(printjson)` om elk document in leesbare JSON te tonen. Als je slechts รฉรฉn record nodig hebt, MongoDB Het biedt ook findOne(), dat het eerste overeenkomende document retourneert in plaats van een cursor. Samen dekken find() en findOne() de meeste leesbewerkingen in een MongoDB database, van het ophalen van complete collecties tot het filteren op specifieke veldwaarden.

MongoDB Basisvraag Operaties

De basis MongoDB Query-operatoren dekken de eenvoudige bewerkingen zoals het ophalen van alle documenten in een MongoDB verzameling. Laten we eens kijken naar een db.collection.find-voorbeeld van hoe we dit kunnen bereiken.

Al onze code wordt uitgevoerd in de MongoDB JavaScript commandoshell. Bedenk dat we een collectie hebben met de naam 'Werknemer' in onze MongoDB database en we voeren de onderstaande opdracht uit.

MongoDB Basisvraag Operaties
MongoDB Basis querybewerking

Code Uitleg:

  1. Werknemer is de collectienaam in het MongoDB databank
  2. De MongoDB find query is een ingebouwde functie die wordt gebruikt om de documenten in de collectie op te halen.

Als de opdracht succesvol wordt uitgevoerd, wordt de volgende uitvoer weergegeven voor de MongoDB voorbeeld vinden

Output:

MongoDB Basisvraag Operaties

In de uitvoer worden alle documenten weergegeven die in de collectie aanwezig zijn.

We kunnen ook criteria aan onze queries toevoegen, zodat we documenten op basis van bepaalde voorwaarden kunnen ophalen.

MongoDB Zoekvoorbeeld โ€“ 1

Laten we er een paar bekijken MongoDB Vraag voorbeelden van hoe we dit kunnen bereiken.

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

Code Uitleg:

  1. Hier willen we zoeken naar een werknemer wiens naam โ€œSmithโ€ is in de verzameling, daarom voeren we de filtercriteria in als EmployeeName: โ€œSmithโ€

Als de opdracht succesvol is uitgevoerd, wordt de volgende uitvoer weergegeven

Output:

MongoDB Voorbeeld van zoekopdracht

De uitvoer laat zien dat alleen het document dat โ€œSmithโ€ als werknemersnaam bevat, wordt geretourneerd.

MongoDB Zoekvoorbeeld โ€“ 2

Nu in dit MongoDB queries tutorial, laten we eens kijken naar een ander codevoorbeeld dat gebruik maakt van de groter dan zoekcriteria. Wanneer dit criterium wordt opgenomen, wordt daadwerkelijk in die documenten gezocht waar de waarde van het veld groter is dan de opgegeven waarde.

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

Code Uitleg:

  1. Hier willen we alle werknemers vinden waarvan de id groter is dan 2. De $gt wordt een queryselectieoperator genoemd en betekent gewoon dat de 'groter dan'-expressie moet worden gebruikt.

Indien de MongoDB Als de opdracht velden selecteren succesvol is uitgevoerd, wordt de volgende uitvoer weergegeven

Output:

MongoDB Voorbeeld van zoekopdracht

Alle documenten waarin de Werknemer-ID groter is dan 2 worden geretourneerd.

MongoDB Vraag Operaverdraaid

MongoDB Deze functie filtert documenten met behulp van selectieoperatoren binnen de `find()`-criteria. Met deze operatoren kunt u zoeken op bereiken, lijsten en negaties in plaats van alleen op exacte waarden. De onderstaande tabel toont de meest voorkomende operatoren:

Operator Betekenis Voorbeeld
$ gt Groter dan {Werknemers-ID: {$gt: 2}}
$lt Less neem contact {Werknemers-ID: {$lt: 5}}
$gte Groter dan of gelijk aan {age: {$gte: 18}}
$te Less dan of gelijk aan {age: {$lte: 60}}
$ne Niet gelijk aan {status: {$ne: โ€œactiefโ€}}
$in Komt overeen met elke waarde in een lijst. {dept: {$in: [โ€œHRโ€,โ€ITโ€]}}

Je kunt voorwaarden ook combineren met $and en $or om nauwkeurigere query's te maken. Door de juiste operator te kiezen, blijven query's efficiรซnt en worden alleen de documenten geretourneerd die je applicatie nodig heeft.

Hoe projectie te gebruiken met find()

Standaard retourneert `find()` het volledige document, inclusief alle velden. Vaak heb je echter maar een paar velden nodig, zoals een naam of een ID. MongoDB Hiermee kun je dit beheren met een projectie, een tweede argument dat aan find() wordt doorgegeven en dat de velden opsomt die moeten worden opgenomen of uitgesloten.

Om alleen specifieke velden op te nemen, stelt u deze in op 1 in het projectieobject. De volgende query retourneert alleen het veld EmployeeName voor elk document:

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

MongoDB Geeft altijd het veld _id terug, tenzij je het expliciet uitsluit. Om het te verbergen, stel je _id in op 0:

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

Je kunt velden ook uitsluiten in plaats van ze op te nemen door ze op 0 in te stellen. De onderstaande query retourneert bijvoorbeeld alle velden behalve Employeeid:

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

Houd er rekening mee dat je inclusie en exclusie niet in dezelfde projectie kunt combineren, behalve voor het veld _id. Het gebruik van projectie vermindert de hoeveelheid gegevens die van de server wordt overgedragen, waardoor query's sneller verlopen en antwoorden gemakkelijker te lezen zijn, met name bij grote documenten.

Veelgestelde vragen

`find()` retourneert een cursor naar alle documenten die overeenkomen met de zoekopdracht, waardoor er meerdere resultaten kunnen worden geretourneerd. `findOne()` retourneert alleen het eerste overeenkomende document als een enkel object, of `null` als er geen overeenkomende documenten zijn.

Koppel de functies `sort()` en `limit()` aan de `find()`-cursor. Bijvoorbeeld: `find().sort({age:1}).limit(5)` retourneert de vijf jongste records. Gebruik 1 voor oplopende volgorde en -1 voor aflopende volgorde in `sort()`.

Gebruik countDocuments() met hetzelfde filter, bijvoorbeeld db.Employee.countDocuments({EmployeeName:โ€Smithโ€}). Deze functie retourneert het aantal overeenkomende documenten zonder ze op te halen, wat sneller is dan het lezen en tellen van de volledige resultatenset.

AI kan een verzoek in gewone taal omzetten in een `find()`-query met de juiste operatoren en projectie, en elk onderdeel toelichten. Test de query altijd eerst op voorbeeldgegevens voordat u deze in productie uitvoert.

Ja. AI kan een queryplan lezen, ontbrekende indexen of inefficiรซnte operators opsporen en suggesties doen voor indexen of herschreven filters. Dit helpt ontwikkelaars om de prestaties van find() op grote collecties sneller te verbeteren.

Vat dit bericht samen met: