Docs Menu
Docs Home
/ / /
Node.js ドライバー
/

フィールドの個別の値を取得

コレクション全体のフィールドの個別の値のリストを取得するには、 コレクション.distinguished() を使用します使用して複数のドキュメントを挿入できます。 ドキュメントフィールド名パラメータを持つ Collectionオブジェクトで String として distinct() メソッドを呼び出し、指定されたドキュメントフィールドに含まれる異なる値をそれぞれ 1 つ含むリストを生成します。

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

ドット表記 を使用して 埋め込みドキュメント 内のドキュメント フィールドを指定できます。配列を含むドキュメント フィールドでdistinct()を呼び出すと、メソッドは各要素を個別の値として扱います。 awardsサブドキュメントのwinsフィールドに対するメソッド呼び出しの次の例を参照してください。

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

distinct()メソッドの 3 つ目のパラメータとして渡されるoptionsオブジェクトを使用して、さらにクエリ オプションを指定できます。 クエリ パラメーターの詳細については 、API ドキュメントの distinct() メソッド を参照してください。

ドキュメント フィールド名に 型String DocumentArrayNumber 、 など、 型ではない値を指定すると、メソッドは実行されず、null TypeMismatchエラーが返されます次のようなメッセージが表示されます。

"key" のタイプが間違っていました。 期待されるstring 、見つかりました <非stringタイプ>

distinct()メソッドの詳細については、 個別の値の取得をご覧ください。

次のスニペットは、 moviesコレクションからyearドキュメント フィールドの個別の値のリストを取得します。 クエリ ドキュメントを使用して、「バーバー スレイサンド」をdirectorとして含む映画を照合します。

注意

この例を使って MongoDB のインスタンスに接続し、サンプルデータを含むデータベースとやり取りできます。MongoDB インスタンスへの接続とサンプル データセットの読み込みの詳細については、使用例ガイドを参照してください。

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);

前の例を実行すると、次の出力が表示されます。

[ 1983, 1991, 1996 ]

戻る

ドキュメントをカウント