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.
Exemplo
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 filtroeq
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
eimdb
, e exclui o campo_id
utilizando o método auxiliarexcludeId()
.
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: