/query コマンド
項目一覧
/query
コマンドは、接続されたMongoDBクラスターに対する自然言語からクエリの生成を支援します。MongoDBGithubGithub Copirot 用のMongoDB拡張機能は、応答を生成するために関連するコレクションの基礎となるスキーマ情報をGithubGithub Copirot に提供します。プロンプトでコレクションを指定しない場合、チャットによって関連するコレクションを選択するよう求められます。
LLMがクエリを生成したら、プレイグラウンドファイルでクエリを開くか、コレクション内でクエリを直接実行できます。
例
クエリの生成
Mflix サンプル データベースのusers
コレクションについて考えてみます。 コレクション内の各ドキュメントの構造は次のとおりです。
{ _id: { "$oid": "59b99db4cfa9a34dcd7885b6" }, name: "Kayden Washington", email: "KW@email.com", password: "11222021" }
users
コレクションを含む配置に接続すると、 Github Copiload チャットにリクエストして、users
コレクション内の name
値が Kayden Washington
であるドキュメントを検索するクエリを生成できます。
@MongoDB /query In the sample_mflix database, find a document in the users collection with the name of Kayden Washington.
GithubGithub Connector チャットは、MongoDB GithubGithub Copirot 用のMongoDB拡張機能 を使用して、データベーススキーマに関する知識を使用して次のクエリを生成します。
use(`sample_mflix`); db.getCollection('users').findOne({ name: 'Kayden Washington' });
Github Copilock 用のMongoDB拡張機能によってクエリが生成されたら、クエリを直接実行するか、プレイグラウンドでクエリを開くかを選択できます。

Aggregation Pipeline をビルドする
Github Copirot 用のMongoDB拡張機能 を使用して集計パイプラインを構築することもできます。 Mflix サンプル データベース のusers
コレクションについて考えてみましょう。コレクション内の各ドキュメントの構造は次のとおりです。
{ _id: { "$oid": "59b99db4cfa9a34dcd7885b6" }, name: "Kayden Washington", email: "KW@email.com", password: "11222021" }
users
コレクションを含む配置に接続すると、 Github Copiload チャットに集計パイプラインの生成を求めることができます。
@MongoDB /query Generate an aggregation pipeline on the users collection that first sorts documents alphabetically by name and then removes the password field from each document.
Github Copirot 用のMongoDB拡張機能 では、次の集計パイプラインが生成されます。
use('sample_mflix'); db.getCollection('users').aggregate([ { $sort: { name: 1 } }, { $project: { password: 0 } } ]);
Github Copilock 用のMongoDB拡張機能によってクエリが生成されたら、パイプラインを直接実行するか、プレイグラウンドでパイプラインを開くかを選択できます。

集計パイプラインで反復的にビルドすることもできます 。
@MongoDB /query Add a stage to my pipeline that adds a username field to each document containing the user's email without the email domain.
Github Copirot 用のMongoDB拡張機能では、次の集計パイプラインが返されます。
use('sample_mflix'); db.getCollection('users').aggregate([ { $sort: { name: 1 } }, { $project: { password: 0 } }, { $addFields: { username: { $arrayElemAt: [{ $split: ["$email", "@"] }, 0] } } } ]);
