/ 查询命令
在此页面上
/query
命令有助于从自然语言生成针对已连接MongoDB 集群的查询。MongoDB适用于Github GitHub CopilotGithub 的MongoDB扩展向Github Github提供相关集合的根本的模式信息,以生成响应。如果您未在提示中指定集合,聊天会提示您选择相关集合。
当 LLM 生成查询时,您可以在 Playground文件中打开查询,也可以直接在集合中运行查询。
示例
生成查询
以 Mflix 样本数据库中的users
集合为例。 集合中的每个文档都具有以下结构:
{ _id: { "$oid": "59b99db4cfa9a34dcd7885b6" }, name: "Kayden Washington", email: "KW@email.com", password: "11222021" }
连接到包含 users
集合的部署后,您可以要求Github Copilot 聊天生成查询,在 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 Copilot 聊天使用适用于GithubMongoDB GithubCopilot 的MongoDB扩展,根据您的数据库模式生成以下查询:
use(`sample_mflix`); db.getCollection('users').findOne({ name: 'Kayden Washington' });
一旦适用于Github Copilot 的MongoDB扩展生成查询,您可以选择直接运行查询或在 Playground 中打开查询。
构建聚合管道
您还可以使用适用于Github Copilot 的MongoDB扩展来构建聚合管道。 以users
Mflix 样本数据库中的 集合为例。集合中的每个文档都具有以下结构:
{ _id: { "$oid": "59b99db4cfa9a34dcd7885b6" }, name: "Kayden Washington", email: "KW@email.com", password: "11222021" }
连接到包含 users
集合的部署后,您可以要求Github Copilot 聊天生成聚合管道。
@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 Copilot 的MongoDB扩展可生成以下聚合管道:
use('sample_mflix'); db.getCollection('users').aggregate([ { $sort: { name: 1 } }, { $project: { password: 0 } } ]);
一旦MongoDB Extension for Github Copilot 生成查询,您可以选择直接运行管道或在 Playground 中打开管道。
您还可以在聚合管道的基础上进行迭代构建:
@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 Copilot 的MongoDB扩展会返回以下聚合管道:
use('sample_mflix'); db.getCollection('users').aggregate([ { $sort: { name: 1 } }, { $project: { password: 0 } }, { $addFields: { username: { $arrayElemAt: [{ $split: ["$email", "@"] }, 0] } } } ]);