MongoDB Frågedokument: db.collection.find() med Exempel
⚡ Smart sammanfattning
MongoDB Dokumentfrågeåtgärder hämtar poster från en samling med hjälp av funktionen db.collection.find(). Metoden returnerar alla dokument som standard, accepterar filterkriterier som fältmatchningar och operatorn $gt och formaterar resultat med kommandot forEach(printjson).

Metoden för att hämta eller hämta data från en MongoDB databas utförs med hjälp av MongoDB frågor. När man utför en frågeoperation kan man också använda kriterier eller villkor som kan användas för att hämta specifik data från databasen.
MongoDB tillhandahåller en funktion som kallas db.collection.find() som används för hämtning av handlingar från en MongoDB databas.
Under loppet av detta MongoDB query tutorial kommer du att se hur den här funktionen används på olika sätt för att uppnå syftet med dokumenthämtning.
Vad är db.collection.find() i MongoDB?
Metoden db.collection.find() är det primära sättet att läsa dokument från en MongoDB samling. När du anropar den utan argument returnerar den alla dokument i samlingen. När du skickar ett frågeobjekt returnerar den bara de dokument som matchar de angivna kriterierna, så att du kan hämta exakt de data du behöver.
Metoden returnerar en markör, som är en pekare till resultatmängden snarare än själva dokumenten. Du loopar vanligtvis genom markören för att visa resultaten, ofta med forEach(printjson) för att visa varje dokument i läsbar JSON. Om du bara behöver en enda post, MongoDB erbjuder även findOne(), som returnerar det första matchande dokumentet istället för en markör. Tillsammans täcker find() och findOne() de flesta läsoperationer i en MongoDB databas, från att hämta hela samlingar till filtrering efter specifika fältvärden.
MongoDB Grundläggande fråga Operationer
Det grundläggande MongoDB frågeoperatorer täcker de enkla operationerna som att hämta alla dokument i en MongoDB samling. Låt oss titta på ett db.collection.find exempel på hur vi kan åstadkomma detta.
All vår kod kommer att köras i MongoDB JavaScript kommandoskal. Tänk på att vi har en samling som heter 'Anställd' i vår MongoDB databasen och vi kör kommandot nedan.

Code Förklaring:
- Anställd är samlingsnamnet i MongoDB databas
- Ocuco-landskapet MongoDB find query är en inbyggd funktion som används för att hämta dokumenten i samlingen.
Om kommandot utförs framgångsrikt kommer följande utdata att visas för MongoDB hitta exempel
Produktion:
Utgången visar alla dokument som finns i samlingen.
Vi kan också lägga till kriterier i våra frågor så att vi kan hämta dokument utifrån vissa förutsättningar.
MongoDB Fråga exempel – 1
Låt oss titta på ett par MongoDB fråga exempel på hur vi kan åstadkomma detta.
db.Employee.find({EmployeeName : "Smith"}).forEach(printjson);
Code Förklaring:
- Här vill vi hitta för en anställd vars namn är "Smith" i samlingen, därför anger vi filterkriterierna som EmployeeName : "Smith"
Om kommandot utförs framgångsrikt kommer följande utdata att visas
Produktion:
Utdata visar att endast dokumentet som innehåller "Smith" som anställds namn returneras.
MongoDB Fråga exempel – 2
Nu i detta MongoDB queries tutorial, låt oss ta en titt på ett annat kodexempel som använder sig av större än sökkriterier. När detta kriterium ingår, söker den faktiskt i de dokument där fältets värde är större än det angivna värdet.
db.Employee.find({Employeeid : {$gt:2}}).forEach(printjson);
Code Förklaring:
- Här vill vi hitta för alla anställda vars id är större än 2. $gt kallas en frågevalsoperator, och det som bara betyder är att använda uttrycket större än.
Om MongoDB select fields-kommandot utförs framgångsrikt, kommer följande utdata att visas
Produktion:
Alla dokument där anställds ID är större än 2 returneras.
MongoDB Fråga Operatorer
MongoDB filtrerar dokument med hjälp av frågevalsoperatorer inom find()-kriterierna. Dessa operatorer låter dig matcha intervall, listor och negationer istället för bara exakta värden. Tabellen nedan listar de vanligaste operatorerna:
| Operator | Betydelse | Exempelvis |
|---|---|---|
| $gt | Större än | {Anställds-ID: {$gt: 2}} |
| $lt | Less än | {Anställds-ID: {$lt: 5}} |
| $gte | Större än eller lika med | {ålder: {$gte: 18}} |
| $lte | Less än eller lika med | {ålder: {$te: 60}} |
| $ne | Inte lika med | {status: {$ne: “aktiv”}} |
| $in | Matchar valfritt värde i en lista | {avd: {$in: [“HR”, “IT”]}} |
Du kan också kombinera villkor med $and och $or för att skapa mer exakta frågor. Att välja rätt operator gör frågorna effektiva och returnerar endast de dokument som din applikation behöver.
Hur man använder projektion med find()
Som standard returnerar find() hela dokumentet, inklusive alla fält. Ofta behöver du bara ett fåtal fält, till exempel ett namn eller ett id. MongoDB låter dig styra detta med en projektion, vilket är ett andra argument som skickas till find() och som listar de fält som ska inkluderas eller exkluderas.
Om du bara vill inkludera specifika fält, sätt dem till 1 i projektionsobjektet. Följande fråga returnerar endast fältet EmployeeName för varje dokument:
db.Employee.find({}, {EmployeeName: 1}).forEach(printjson);
MongoDB returnerar alltid _id-fältet om du inte uttryckligen exkluderar det. För att dölja det, sätt _id till 0:
db.Employee.find({}, {EmployeeName: 1, _id: 0}).forEach(printjson);
Du kan också exkludera fält istället för att inkludera dem genom att ställa in dem till 0. Till exempel returnerar frågan nedan alla fält utom Employeeid:
db.Employee.find({}, {Employeeid: 0}).forEach(printjson);
Tänk på att du inte kan blanda inkludering och exkludering i samma projektion, förutom för _id-fältet. Att använda projektion minskar mängden data som överförs från servern, vilket gör frågor snabbare och svar lättare att läsa, särskilt i stora dokument.



