So verwenden Sie die FindOne -Abfrage in MongoDB
Die methode findOne () gibt nur das einzelne Dokument des angegebenen Sammlungsnamens zurück, wenn es in der MongoDB -Shell ausgeführt wird. Darüber hinaus nimmt die FindOne () -Methode auch den Parameter an, der den bedingten Ausdruck und die Projektion enthält. Der parametrische Wert wird im folgenden laufenden Beispiel diskutiert. Vorher haben wir die Dokumente in die Sammlung „Mobile“ eingebettet. Wir verwenden die InsertMany -Abfrage, um die Dokumente in unsere „Mobile“ -Kollektion hinzuzufügen. Die Insertion -Abfrage ist im Folgenden angegeben:
db.Handy, Mobiltelefon.InsertMany ([
_id: 1,
Marke: "Oppo",
Name: "Oppo F21 Pro",
Garantie: "5",
Preis: 51000
,
_id: 2,
Marke: "Samsung",
Name: "Samsung A12",
Garantie: "2",
Preis: 45000
,
_id: 3,
Marke: "OnePlus",
Name: "OnePlus 8 Pro",
Garantie: "6",
Preis: 900000
,
_id: 4,
Marke: "Infinix",
Name: "Infinix Note 7",
Garantie: "1",
Preis: 67000
,
_id: 5,
Marke: "Vivo",
Name: "Vivo S1",
Garantie: "3",
Preis: 21600
]))
Das Ergebnis, das im folgenden Bild zu sehen ist. Jetzt verwenden wir diese Mustersammlung „Mobiles“, um die Arbeit der Findone -Abfrage zu zeigen, um das einzelne Dokument abzurufen.
Beispiel 1: Verwenden der FindOne -Abfrage in MongoDB
Hier rufen wir die findOne () -Methode mit den leeren Parametern auf, um die Arbeit der FindOne () -Methode ohne parametrischen Wert zu sehen. Wir haben eine Abfrage, bei der die „mobile“ Sammlung angegeben wird und die FindOne () -Methode über die „Mobile“ -Kollektion aufgerufen wird.
db.Handy, Mobiltelefon.einen finden()
Die Abfrage von findOne () gibt nach Ausführung das Single und das erste Dokument der „Mobile“ -Kollektion zurück, da es keinen Zustand gibt, der für den Erwerb des spezifischen Dokuments eingestellt ist. Durch die Ausführung der FindOne () -Methode mit leeren Abfragetechnik wird daher immer das erste Dokument der Sammlung zurückgegeben.
Beispiel 2: Verwenden der FindOne -Abfrage in MongoDB durch Bereitstellung des Feldes
Hier verwenden wir die FindOne () -Methode mit einem Abfrageparameter. Der Abfrageparameter ist definiert als "Name:" vivo s1 "", das das Dokument findet, dessen "Name" -Feld gleich dem Wert "viva s1" ist. Wenn zwei oder mehr Dokumente mit denselben Ergebnissen abgerufen werden, wird nur das erste übereinstimmende Dokument von der FindOne () -Methode abgerufen. Wir haben die folgende FindOne () -Methode mit der Abfragespezifikation:
db.Handy, Mobiltelefon.findOne (name: "vivo s1")
Da wir nur ein Dokument haben, dessen "Name" Feld den Wert "Vivo S1" in der "Mobile" -Kollektion enthält, das im folgenden Bild als resultierendes Dokument angesehen wird:
Beispiel 3: Verwenden der FindOne-Abfrage in MongoDB durch Bereitstellung des Feldwerts nicht existieren
Wenn das Dokument nicht mit den angegebenen Abfragespezifikationen übereinstimmt. Hier geben wir eine Abfrage innerhalb der FindOne () -Methode an, bei der wir die Kriterien „_id: 6“ festlegen. Das Feld _id ist mit einem Wert von „6“ zugeordnet, der nicht in unserer MongoDB -Mobiltelefonsammlung enthalten ist.
db.Handy, Mobiltelefon.findOne (_ id: 6)
Wie wir sehen können, wird die Null -Zeichenfolge nach dem Ausführen der vorherigen FindOne -Abfrage erhalten. Dies liegt daran.
Beispiel 4: Verwenden der FindOne -Abfrage in MongoDB durch Bereitstellung der Projektion
Die FindOne () -Methode generiert ein Dokument, das nur die Projektionsfelder enthält, wenn ein Projektionsargument angegeben ist. Der Projektionsparameter hier zeigt die enthaltenen Felder an, die enthalten sind. Wir haben die folgende FindOne -Abfrage, bei der wir die Kriterien "Marke:" Samsung "" festlegen und dann den Projektionsparameter festlegen, der den Ausdruck "Preis: 1" enthält. Die FindOne () -Methode entspricht zunächst dem Dokument mit den angegebenen Kriterien und zeigt dann das Feld „Preis“ dieses bestimmten Dokuments an, da die Projektion über das Feld "Preis" festgelegt ist. Der „Preis“ wird mit einem Wert „1“ angegeben und der Wert „1“ wird als wahr in der Projektion von MongoDB bezeichnet.
db.Handy, Mobiltelefon.FindOne (Brand: "Samsung", Preis: 1)
Die FindOne -Abfrage entspricht dem Dokument, dessen „Marke“ den Wert „Samsung“ enthält und das Dokumentfeld „Preis“ in der Ausgabe zeigt. Standardmäßig ist das Feld "_id" das einzige Feld, das bei der Ausführung der FindOne () -Methode immer angezeigt wird.
Beispiel 5: Verwenden der FindOne -Abfrage in MongoDB durch Bereitstellung der Projektion, um die Felder auszuschließen
Im vorherigen Beispiel für FindOne () -Methode verwenden wir den Projektionsparameter innerhalb der FindOne () -Methode, um die spezifischen Felder einzuschließen. Jetzt verwenden wir die FindOne () -Methode, um das Dokument mit den übereinstimmenden Kriterien zu identifizieren. Dann schließt der Projektionsparameter das bestimmte Feld dieses Dokuments aus. Diese Erklärung kann mit dem folgenden Anfragebehörde leicht verstanden werden. Wir setzen die FindOne () -Methode mit der Auswahlkriterien „Marke:„ OPPP “. Die FindOne () -Methode entspricht dem Dokument aus der Kollektion „Mobile“, deren „Markenwert“ „Oppo“ ist. Schließen Sie dann die Felder "_id", "Name" und "Preis" aus dem übereinstimmenden Dokument aus, da der Projektionswert für diese Felder mit dem Wert "0" zugewiesen ist, was Falsch bedeutet.
db.Handy, Mobiltelefon.einen finden(
Brand: "Oppo",
_id: 0, Name: 0, Preis: 0
)
Dort haben wir ein Dokument, das als Ausgabe von der Findone -Abfrage abgerufen wird, deren "Marke" und "Garantie" nur angezeigt wird, und alle anderen Felder sind ausgeschlossen.
Beispiel 6: Verwenden der FindOne -Abfrage in MongoDB durch Bereitstellung des bedingten Bedieners
Dieses Beispiel ist die FindOne () -Methode mit den Abfragespezifikationen als bedingter „$ oder“ Operator. Die methode findOne () entspricht nur dem Dokument, das die Anforderungen von $ oder Bediener erfüllt. Lassen Sie uns eine Frage dazu haben. Wir haben eine folgende Abfrage, bei der wir die FindOne () -Methode bereitstellen und dann den $ oder den Bediener darin einstellen. Der $ oder Operator enthält die beiden Ausdrücke - "Name: OnePlus 8 Pro" und "Garantie: $ GT: 3". Der "Name" -Wert sollte "OnePlus 8 Pro" sein und der Wert "Garantie" sollte größer sein als der Wert von "3". Aus diesen Ausdrücken sollte einer der Ausdrücke wie vom $ oder Operator vorgeschrieben sein.
db.Handy, Mobiltelefon.einen finden(
$ oder: [
Name: "OnePlus 8 Pro",
Garantie: $ GT: 3]
)
Innerhalb der Ausgabe erhalten wir das einzelne Dokument aus dem FindOne (), das sowohl den Ausdruck des $ als auch des Bedieners erfüllt.
Abschluss
Ziel des Artikels ist es, die Methode für FindOne () in MongoDB mit der Code -Implementierung zu untersuchen. Hier sahen wir die Arbeit der FindOne () -Methode ohne Abfragetechnik und mit den Abfragespezifikationen. Anschließend verwendeten wir die FindOne () -Methode, um den Projektionsparameter zu verwenden, um die bestimmten Felder anzuzeigen. Danach fanden wir das Dokument mit der FindOne () -Methode, die den bedingten Operator als Auswahlkriterien nimmt.