MongoDB findOne Beispiel

Die MongoDB findOne()-Methode gibt nur ein Dokument zurück, das den eingegebenen Kriterien entspricht. Wenn die eingegebenen Kriterien auf mehr als ein Dokument zutreffen, 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.

Syntax von MongoDB findOne

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

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

MongoDB findOne – Leere Abfragespezifikation

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

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

Es wird nur ein Datensatz aus der Autosammlung abgerufen. Beachten Sie, dass „Polo“ zuerst in die Datenbank eingefügt wurde.

MongoDB findOne – Abfragespezifikation

Diese MongoDB findOne-Operation gibt das erste passende 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 nach einer Geschwindigkeit, die größer als 60 ist, 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. Lassen Sie uns einige Szenarien betrachten, in denen wir Projektion in findOne verwenden können.

Angegebene Felder zurückgeben

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

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

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

Das erste Dokument aus der Autosammlung mit ID, Name und Farbfeldern wird angezeigt.

Alle Felder zurückgeben, außer den ausgeschlossenen

Diese Operation ruft das erste Dokument ab und schließt die in den Auswahlkriterien angegebenen Felder aus. 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 werden.

Ergebnisdokument von MongoDB findOne

Cursor-Methoden funktionieren in dieser Operation nicht, da die Methode nur ein einzelnes Dokument zurückgibt. Um die einzelnen Feldwerte aus dem Dokument auszudrucken, können wir den folgenden Code verwenden.

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

Damit wird nur der Name des Autos „Polo“ abgerufen.

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 {

	// method retrieves the first document without any criteria
	public static void emptyFindOne() throws UnknownHostException {

		// Get a new connection to the db assuming that it is running
		MongoClient mongoClient = new MongoClient("localhost");

		// use test as a datbase,use your database here
		DB db = mongoClient.getDB("test");

		// fetch the collection object ,car is used here,use your own
		DBCollection coll = db.getCollection("car");

		// invoking findOne() method
		DBObject doc = coll.findOne();

		// prints the resultant document
		System.out.println(doc);
	}

	// method that retrieves the document based on the selection criteria
	public static void querySpecification() throws UnknownHostException {
		// getting a connection everytime is not needed (could be done once
		// globally).
		MongoClient mongoClient = new MongoClient("localhost");
		DB db = mongoClient.getDB("test");
		DBCollection coll = db.getCollection("car");

		// query to filter the document based on name and speed values by
		// creating new object
		DBObject query = new BasicDBObject("name", "Zen").append("speed",
				new BasicDBObject("$gt", 30));

		// resultant document fetched by satisfying the criteria
		DBObject d1 = coll.findOne(query);

		// prints the document on console
		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");

		// creates new db object
		BasicDBObject b1 = new BasicDBObject();

		// criteria to display only name and color fields in the resultant
		// document
		BasicDBObject fields = new BasicDBObject("name", 1).append("color", 1);

		// method that retrieves the documents by accepting fields and object
		// 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");

		// filter criteria for car name volkswagen
		DBObject query = new BasicDBObject("name", "Volkswagen");

		// excluding the fields mfdcountry,cno and id fields
		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();
		
		// prints only the name of the car
		System.out.println((d1.get("name")));
	}
	
	public static void main(String[] args) throws UnknownHostException {
		// invoking all the methods from main
		emptyFindOne();
		querySpecification();
		projectionFields();
		excludeByfields();
		printDoc();
	}

}

Output

{ "_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 zur MongoDB findOne()-Methode, wir werden uns in kommenden Beiträgen weitere MongoDB-Optionen ansehen.

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren:

centron Managed Cloud Hosting in Deutschland

Java-Array: So prüfst du Werte effizient

JavaScript
Wie prüft man, ob ein Java Array einen Wert enthält? Es gibt viele Möglichkeiten, um zu überprüfen, ob ein Java Array einen bestimmten Wert enthält. Einfache Iteration mit einer for-Schleife…