Menu Docs
Página inicial do Docs
/ / /
Java síncrono
/ /

Encontrar um documento

Você pode recuperar um único documento em uma coleção encadeando os métodos find() e first() em um objeto MongoCollection. Você pode passar um filtro de query para o método find() para fazer query e retornar documentos que correspondam ao filtro na coleção. Se você não incluir um filtro, o MongoDB retornará todos os documentos na coleção. O método first() retorna o primeiro documento correspondente.

Para obter mais informações sobre como fazer query no MongoDB com o driver Java, veja nossoguia sobre como fazer query de documentos.

Você também pode encadear outros métodos para o método find(), como sort() que organiza os documentos correspondentes em uma ordem especificada e projection() que configura os campos incluídos nos documentos retornados.

Para obter mais informações sobre o método de sort(), veja nosso guia de classificação. Para obter mais informações sobre o método de projection(), veja nosso guia de projeções

O método find() retorna uma instância de FindIterable, uma classe que oferece vários métodos para acessar, organizar e percorrer os resultados. FindIterable também herda métodos de sua classe principal, MongoIterable, como first().

O método first() retorna o primeiro documento dos resultados recuperados ou null se não houver resultados.

O trecho a seguir encontra um único documento da coleta movies. Ele usa os seguintes objetos e métodos:

  • Um filtro de query que é passado para o método find(). O filtro eq corresponde apenas a filmes com o título que corresponde exatamente ao texto 'The Room'.

  • Uma classificação que organiza documentos correspondentes em ordem decrescente por classificação, portanto, se nossa query corresponder a vários documentos, o documento retornado será o que tiver a classificação mais alta.

  • Uma projeção que inclui os objetos nos campos title e imdb, e exclui o campo _id utilizando o método auxiliar excludeId().

Observação

Esse exemplo se conecta a uma instância do MongoDB usando um URI de conexão. Para saber mais sobre como se conectar à sua instância do MongoDB, consulte o Guia de conexão.

package usage.examples;
import static com.mongodb.client.model.Filters.eq;
import org.bson.Document;
import org.bson.conversions.Bson;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Projections;
import com.mongodb.client.model.Sorts;
public class FindOne {
public static void main( String[] args ) {
// Replace the uri string with your MongoDB deployment's connection string
String uri = "<connection string uri>";
try (MongoClient mongoClient = MongoClients.create(uri)) {
MongoDatabase database = mongoClient.getDatabase("sample_mflix");
MongoCollection<Document> collection = database.getCollection("movies");
Bson projectionFields = Projections.fields(
Projections.include("title", "imdb"),
Projections.excludeId());
Document doc = collection.find(eq("title", "The Room"))
.projection(projectionFields)
.sort(Sorts.descending("imdb.rating"))
.first();
if (doc == null) {
System.out.println("No results found.");
} else {
System.out.println(doc.toJson());
}
}
}
}

Dica

Legacy API

Se você estiver usando a API herdada, consulte nossa página de perguntas frequentes para saber quais alterações devem ser feitas nesse exemplo de código.

Para obter mais informações sobre as classes e métodos mencionados nesta página, consulte a seguinte documentação da API:

  • FindIterable

  • MongoIterable

  • find()

  • first()

Voltar

Encontrar operações