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 queries 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 consultar o MongoDB com o driver Java, consulte nosso guia sobre Consulta 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 sort()
, consulte nosso guia de classificação. Para obter mais informações sobre o método projection()
, consulte nosso guia de projeção
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 queries 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.
// Retrieves a document that matches a query filter by using the Java driver 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"); // Creates instructions to project two document fields Bson projectionFields = Projections.fields( Projections.include("title", "imdb"), Projections.excludeId()); // Retrieves the first matching document, applying a projection and a descending sort to the results Document doc = collection.find(eq("title", "The Room")) .projection(projectionFields) .sort(Sorts.descending("imdb.rating")) .first(); // Prints a message if there are no result documents, or prints the result document as JSON 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: