Docs Menu
Docs Home
/ / /
Node.js
/

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

collection.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 ]

戻る

ドキュメントをカウント