Menu Docs
Página inicial do Docs
/ / /
Controlador Node.js
/

Recuperar valores distintos de um campo

Você pode recuperar uma lista de valores distintos para um campo em uma collection usando o método collection.distinct(). método. Chame o método distinct() em um Collection com um parâmetro de nome de campo de documento como String para produzir uma lista que contenha um de cada um dos diferentes valores encontrados no campo de documento especificado, conforme mostrado abaixo:

const distinctValues = myColl.distinct("countries", query);

Você pode especificar um campo de documento dentro de um documento incorporado usando a notação de ponto. Se você chamar distinct() em um campo de documento que contém uma array, o método tratará cada elemento como um valor separado. Consulte o seguinte exemplo de uma chamada de método para o campo wins no subdocumento awards :

const distinctValues = myColl.distinct("awards.wins", query);

Você pode especificar mais opções de consulta utilizando o objeto options passado como o terceiro parâmetro para o método distinct() . Para obter detalhes sobre os parâmetros de consulta, consulte o método distinct() na documentação da API.

Se você especificar um valor para o nome do campo do documento que não é do tipo String como Document, Array, Number ou null, o método não será executado e retornará um erro do TypeMismatch com uma mensagem semelhante ao seguinte:

"key" teve o tipo errado. String esperada, encontrada <non-string type>

Visite Retrieve Distinct Values para obter mais informações sobre o método distinct() .

O seguinte trecho recupera uma lista de valores distintos para o campo de documento year da coleção movies. Utiliza um documento de consulta para corresponder a filmes que incluem "Barbara Streisand" como director.

Observação

Você pode utilizar este exemplo para se conectar a uma instância do MongoDB e interagir com um banco de dados que contém dados de amostra. Para saber mais sobre como se conectar à sua instância do MongoDB e carregar um conjunto de dados de amostra, consulte o Guia de exemplos de uso.

1import { MongoClient } from "mongodb";
2
3// Replace the uri string with your MongoDB deployment's connection string.
4const uri = "<connection string uri>";
5
6const client = new MongoClient(uri);
7
8async function run() {
9 try {
10
11 // Get the database and collection on which to run the operation
12 const database = client.db("sample_mflix");
13 const movies = database.collection("movies");
14
15 // Specify the document field to find distinct values for
16 const fieldName = "year";
17
18 // Specify an optional query document to narrow results
19 const query = { directors: "Barbra Streisand" };
20
21 // Execute the distinct operation
22 const distinctValues = await movies.distinct(fieldName, query);
23
24 // Print the result
25 console.log(distinctValues);
26 } finally {
27 await client.close();
28 }
29}
30run().catch(console.dir);
1import { MongoClient } from "mongodb";
2
3// Replace the uri string with your MongoDB deployment's connection string.
4const uri = "<connection string uri>";
5
6const client = new MongoClient(uri);
7
8interface Movie {
9 directors: string;
10 year: number;
11}
12
13async function run() {
14 try {
15 // define a database and collection on which to run the method
16 const database = client.db("sample_mflix");
17 const movies = database.collection<Movie>("movies");
18
19 const distinctValues = await movies.distinct("year", {
20 directors: "Barbra Streisand",
21 });
22
23 console.log(distinctValues);
24 } finally {
25 await client.close();
26 }
27}
28run().catch(console.dir);

Ao executar o exemplo anterior, você vê a seguinte saída:

[ 1983, 1991, 1996 ]

Voltar

Contagem de documentos

Próximo

Execute um comando