MongoDB findOne Beispiel

Die MongoDB findOne() Methode gibt nur ein Dokument zurück, das den eingegebenen Kriterien entspricht. Wenn die eingegebenen Kriterien für mehr als ein Dokument übereinstimmen, gibt die Methode nur ein Dokument gemäß der natürlichen Reihenfolge zurück, die die Reihenfolge widerspiegelt, in der die Dokumente in der Datenbank gespeichert sind.

MongoDB findOne

Die Syntax für MongoDB findOne() lautet: db.collection.findOne(<criteria>, <projection>) Kriterien – gibt die eingegebenen Auswahlkriterien an. Projektion – gibt die Liste der Felder an, die im zurückgegebenen Dokument angezeigt werden sollen. Einige wichtige Punkte zu MongoDB findOne:

  1. Der Projektionsparameter akzeptiert die booleschen Werte 1 oder true, 0 oder false. Wenn die Projektionsfelder nicht angegeben sind, werden alle Felder abgerufen.
  2. MongoDB findOne() enthält immer das _id-Feld, auch wenn es nicht explizit im Projektionsparameter angegeben ist, es sei denn, es wurde ausgeschlossen.
  3. MongoDB findOne() gibt immer nur ein Dokument, aber keinen Cursor zurück.

MongoDB findOne – Leere Abfragespezifikation

Diese Operation gibt ein einzelnes Dokument aus der angegebenen Sammlung zurück. Zum Beispiel db.car.findOne() Ausgabe:

{
"_id" : 2,
"name" : "Polo", "color" : "White",
"cno" : "H411", "speed" : 45, "mfdcountry" : "Japan"
}

Nur ein Datensatz wird aus der Sammlung car abgerufen. Beachten Sie, dass „Polo“ zuerst in die Datenbank eingefügt wurde.

MongoDB findOne – Abfragespezifikation

Diese MongoDB findOne-Operation gibt das erste übereinstimmende Dokument aus der angegebenen Sammlung zusammen mit den eingegebenen Auswahlkriterien zurück. Zum Beispiel:

>db.car.findOne(
... {
... $or:[
... {name:"Zen"},
... {speed: {$gt:60}} ... ]
... }
... )

{
"_id" : ObjectId("546cb92393f464ed49d620db"), 
"name" : "Zen",
"color" : "JetRed",
"cno" : "H671",
"speed" : 67, 
"mfdcountry" : "Rome"
}

Diese Operation sucht nach dem Auto mit dem Namen „Zen“ oder einer Geschwindigkeit über 60 und ruft das erste Dokument ab, das die eingegebenen Kriterien aus der Autosammlung erfüllt.

Projektion in MongoDB findOne()

Der Projektionsparameter ist auch für die MongoDB findOne-Methode anwendbar. Schauen wir uns einige Szenarien an, in denen wir die Projektion in findOne verwenden können.

MongoDB findOne – geben Sie die zurückzugebenden Felder an

Diese Operation zeigt nur die in der Abfrage angegebenen Felder an. Zum Beispiel:

>db.car.findOne(
... { },
... {name:1,color:1}
... )

{ "_id" : 2, "name" : "Polo", "color" : "White" }

Das erste Dokument aus der Autokollektion mit den Feldern id, name und Farbe wird angezeigt.

MongoDB findOne – geben Sie alle Felder zurück, außer dem ausgeschlossenen

Diese Operation ruft das erste Dokument ab, wobei die in den Auswahlkriterien angegebenen Felder ausgeschlossen sind. Zum Beispiel;

>db.car.findOne(
... { name:"Volkswagen" },
... {_id:0, mfdcountry:0,cno:0 }
... )

{ "name" : "Volkswagen", "color" : "JetBlue", "speed" : 62 }

Der Autoname mit Volkswagen wird abgerufen, wobei die Felder id, mfdcountry und cno ausgeschlossen sind.

MongoDB findOne Ergebnisdokument

Cursor-Methoden funktionieren bei dieser Operation nicht, da die Methode nur ein einziges Dokument zurückgibt. Um die einzelnen Feldwerte aus dem Dokument zu drucken, können wir den untenstehenden Code verwenden.

>var car = db.car.findOne(); 
> if (car) {
...  var carName = car.name;
...  print (tojson(carName));
... }

"Polo"

Dies ruft nur den Namen des Autos „Polo“ ab.

MongoDB findOne Java Beispiel

Unten ist das Java-Programm, das verschiedene Optionen zeigt, die wir mit MongoDB findOne() verwenden können. MongoDBFindOne.java

package com.journaldev.mongodb;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;

import java.net.UnknownHostException;

public class MongoDBFindOne {

	// Methode ruft das erste Dokument ohne Kriterien ab
	public static void emptyFindOne() throws UnknownHostException {

		// Eine neue Verbindung zur Datenbank wird angenommen, dass sie läuft
		MongoClient mongoClient = new MongoClient("localhost");

		// Verwenden Sie test als Datenbank, verwenden Sie hier Ihre eigene Datenbank
		DB db = mongoClient.getDB("test");

		// Holen Sie das Collection-Objekt ab, hier wird car verwendet, verwenden Sie Ihr eigenes
		DBCollection coll = db.getCollection("car");

		// Aufrufen der findOne()-Methode
		DBObject doc = coll.findOne();

		// Gibt das resultierende Dokument aus
		System.out.println(doc);
	}

	// Methode, die das Dokument basierend auf den Auswahlkriterien abruft
	public static void querySpecification() throws UnknownHostException {
		// Eine Verbindung jedes Mal zu erhalten, ist nicht erforderlich (könnte einmal gemacht werden
		// globally).
		MongoClient mongoClient = new MongoClient("localhost");
		DB db = mongoClient.getDB("test");
		DBCollection coll = db.getCollection("car");

		// Abfrage zum Filtern des Dokuments basierend auf Name- und Geschwindigkeitswerten durch
		// Neues Objekt erstellen
		DBObject query = new BasicDBObject("name", "Zen").append("speed",
				new BasicDBObject("$gt", 30));

		// Das resultierende Dokument wird durch Erfüllung der Kriterien abgerufen
		DBObject d1 = coll.findOne(query);

		// Gibt das Dokument auf der Konsole aus
		System.out.println(d1);
	}

	public static void projectionFields() throws UnknownHostException {

		MongoClient mongoClient = new MongoClient("localhost");
		DB db = mongoClient.getDB("test");
		DBCollection coll = db.getCollection("car");

		// Erstellt neues Datenbankobjekt
		BasicDBObject b1 = new BasicDBObject();

		// Kriterien zum Anzeigen nur von Name- und Farbfeldern im Ergebnis
		// document
		BasicDBObject fields = new BasicDBObject("name", 1).append("color", 1);

		// Methode, die die Dokumente abruft, indem sie Felder und Objekt akzeptiert
		// criteria
		DBObject d1 = coll.findOne(b1, fields);

		System.out.println(d1);

	}

	public static void excludeByfields() throws UnknownHostException {
		MongoClient m1 = new MongoClient("localhost");

		DB db = m1.getDB("test");
		DBCollection col = db.getCollection("car");

		// Filterkriterien für den Autonamen Volkswagen
		DBObject query = new BasicDBObject("name", "Volkswagen");

		// Ausschluss der Felder mfdcountry, cno und id
		BasicDBObject fields = new BasicDBObject("mfdcountry", 0).append("cno",
				0).append("_id", 0);

		DBObject d1 = col.findOne(query, fields);
		System.out.println(d1);
	}

	public static void printDoc() throws UnknownHostException {
		MongoClient m1 = new MongoClient("localhost");
		DB db = m1.getDB("test");
		DBCollection col = db.getCollection("car");
		
		DBObject d1 = col.findOne();
		
		// Gibt nur den Namen des Autos aus
		System.out.println((d1.get("name")));
	}
	
	public static void main(String[] args) throws UnknownHostException {
		// Aufrufen aller Methoden von main
		emptyFindOne();
		querySpecification();
		projectionFields();
		excludeByfields();
		printDoc();
	}

}

Die Ausgabe des obigen Programms lautet:

{ "_id" : 2.0 , "name" : "Polo" , "color" : "White" , "cno" : "H411" , "speed" : 45.0 , "mfdcountry" : "Japan"} ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
{ "_id" : { "$oid" : "546cb92393f464ed49d620db"} , "name" : "Zen" , "color" : "JetRed" , "cno" : "H671" , "speed" : 67 , "mfdcountry" : "Rome"}
{ "_id" : 2.0 , "name" : "Polo" , "color" : "White"}
{ "name" : "Volkswagen" , "color" : "JetBlue" , "speed" : 62}
Polo

Das ist alles für die MongoDB findOne() Methode, wir werden in kommenden Beiträgen weitere MongoDB-Optionen betrachten. Referenz: Offizielle Dokumentation

Source:
https://www.digitalocean.com/community/tutorials/mongodb-findone-example