hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Provides full featured access to MongoDB databases using natural language via LLMs to perform queries, run aggregations, optimize performance, and more. The server connects to MongoDB instances to allow exploration, querying, and management of databases, collections, and documents.
MongoDB 镜头
MongoDB Lens是一个本地模型上下文协议 (MCP) 服务器,具有通过 LLM 使用自然语言对 MongoDB 数据库进行全功能访问的功能,可以执行查询、运行聚合、优化性能等。
内容
快速入门
特征
工具
add-connection-alias
:添加新的 MongoDB 连接别名aggregate-data
:执行聚合管道analyze-query-patterns
:分析实时查询并提出优化建议analyze-schema
:自动推断集合模式bulk-operations
:高效执行多个操作(破坏性操作需要确认)clear-cache
:清除内存缓存以确保数据新鲜collation-query
:查找具有特定语言排序规则的文档compare-schemas
:比较两个集合之间的模式connect-mongodb
:连接到不同的 MongoDB URIconnect-original
:连接回启动时使用的原始 MongoDB URIcount-documents
:统计符合指定条件的文档数量create-collection
:使用自定义选项创建新集合create-database
:创建一个新的数据库,并可以选择切换到该数据库create-index
:创建新索引以优化性能create-timeseries
:为时间数据创建时间序列集合create-user
:创建具有特定角色的新数据库用户current-database
:显示当前数据库上下文delete-document
:删除符合指定条件的文档(需要确认)distinct-values
:提取任意字段的唯一值drop-collection
:从数据库中删除集合(需要确认)drop-database
:删除数据库(需要确认)drop-index
:从集合中删除索引(需要确认)drop-user
:删除数据库用户(需要确认)explain-query
:分析查询执行计划export-data
:以 JSON 或 CSV 格式导出查询结果find-documents
:使用过滤器、投影和排序运行查询generate-schema-validator
:生成 JSON 模式验证器geo-query
:使用各种运算符执行地理空间查询get-stats
:检索数据库或集合统计信息gridfs-operation
:使用 GridFS buckets 管理大文件insert-document
:将一个或多个文档插入集合list-collections
:浏览当前数据库中的集合list-connections
:查看所有可用的 MongoDB 连接别名list-databases
:查看所有可访问的数据库rename-collection
:重命名现有集合(删除目标时需要确认)shard-status
:查看数据库和集合的分片配置text-search
:跨文本索引字段执行全文搜索transaction
:在单个 ACID 事务中执行多个操作update-document
:更新符合指定条件的文档use-database
:切换到特定的数据库上下文validate-collection
:检查数据不一致watch-changes
:监控集合的实时变化
资源
collection-indexes
:集合的索引信息collection-schema
:集合的架构信息collection-stats
:集合的性能统计信息collection-validation
:集合的验证规则collections
:当前数据库中的集合列表database-triggers
:数据库更改流和事件触发器配置database-users
:当前数据库中的数据库用户和角色databases
:所有可访问数据库的列表performance-metrics
:实时性能指标和分析数据replica-status
:副本集状态和配置server-status
:服务器状态信息stored-functions
:当前数据库中存储的 JavaScript 函数
提示
aggregation-builder
:逐步创建聚合管道backup-strategy
:定制备份和恢复建议data-modeling
:针对特定用例的 MongoDB 模式设计专家建议database-health-check
:全面的数据库健康评估和建议index-recommendation
:根据查询模式获取个性化索引建议migration-guide
:MongoDB 版本迁移分步指南mongo-shell
:生成带有解释的 MongoDB shell 命令multi-tenant-design
:设计 MongoDB 多租户数据库架构query-builder
:构建 MongoDB 查询的交互式指南query-optimizer
:针对慢查询的优化建议schema-analysis
:详细的集合模式分析及建议schema-versioning
:管理 MongoDB 应用程序中的模式演变security-audit
:数据库安全分析及改进建议sql-to-mongodb
:将 SQL 查询转换为 MongoDB 聚合管道
其他功能
其他功能:概述
MongoDB Lens 还包含许多其他功能:
- 配置文件:通过
~/.mongodb-lens.[jsonc|json]
进行自定义配置 - Env Var Overrides :通过
process.env.CONFIG_*
覆盖配置设置 - 确认系统:破坏性操作两步验证
- 多个连接:定义并在命名 URI 别名之间切换
- 组件禁用:选择性地禁用工具、提示或资源
- 连接弹性:采用指数退避算法的自动重新连接
- 查询保障:可配置的限制和性能保护
- 错误处理:全面的 JSONRPC 错误代码和消息
- 模式推断:通过智能采样进行高效的模式分析
- 凭证保护:日志中的连接字符串密码混淆
- 内存管理:自动监控和清理大型操作
- 智能缓存:针对模式、索引、字段和集合进行优化缓存
- 向后兼容:支持现代和旧版 MongoDB 版本
其他特性:新的数据库元数据
MongoDB Lens 将metadata
集合插入到它创建的每个数据库中。
该metadata
集合存储包含上下文信息的单个文档,作为数据库来源的永久记录,同时确保新的和空的数据库保留在 MongoDB 的存储系统中。
将自己的集合添加到新数据库后,您可以通过drop-collection
工具安全地删除metadata
集合:
- “删除新数据库的元数据集合” ➥使用
drop-collection
工具(带确认)
安装
MongoDB Lens 可以通过多种方式安装和运行:
安装:NPX
运行 MongoDB Lens 最简单的方法是使用 NPX。
首先,确保已安装 Node.js:
然后,通过 NPX 运行 MongoDB Lens:
[!TIP] 如果您遇到
npx
的权限错误,请尝试在运行npx -y mongodb-lens
之前运行npx clear-npx-cache
(这将清除缓存并重新下载包)。
安装:Docker Hub
[!NOTE] Docker Hub 需要在你的系统上安装并运行Docker 。
首先,确保已安装 Docker:
然后,通过 Docker Hub 运行 MongoDB Lens:
安装:来自源代码的 Node.js
- 克隆 MongoDB Lens 存储库:Copy
- 导航到克隆的存储库目录:Copy
- 确保已安装 Node.js:Copy
- 安装 Node.js 依赖项:Copy
- 启动服务器:Copy
安装:从源代码安装 Docker
[!NOTE] 从源代码运行 Docker 需要在你的系统上安装并运行Docker 。
- 克隆 MongoDB Lens 存储库:Copy
- 导航到克隆的存储库目录:Copy
- 确保已安装 Docker:Copy
- 构建 Docker 镜像:Copy
- 运行容器:Copy
安装验证
要验证安装,请将以下 JSONRPC 消息粘贴到服务器的 stdio 中并运行:
服务器应该响应 MongoDB 实例中的数据库列表,例如:
MongoDB Lens 现已安装并准备接受 MCP 请求。
安装:旧版 MongoDB
如果连接到版本< 4.0
的 MongoDB 实例,则最新版本的 MongoDB Lens 所使用的 MongoDB Node.js 驱动程序将不兼容。具体来说,MongoDB Node.js 驱动程序4.0.0
及以上版本需要 MongoDB 4.0
或更高版本。
要将 MongoDB Lens 与较旧的 MongoDB 实例一起使用,您需要使用3.x
系列的 MongoDB Node.js 驱动程序版本(例如与 MongoDB 3.6
兼容的3.7.4
)。
旧 MongoDB 版本:从源代码运行
- 克隆 MongoDB Lens 存储库:Copy
- 导航到克隆的存储库目录:Copy
- 修改
package.json
:Copy - 安装 Node.js 依赖项:Copy
- 启动 MongoDB Lens:Copy
这将使用与您的 MongoDB 实例兼容的旧驱动程序版本。
[!NOTE] 您可能还需要撤消此提交以重新添加
useNewUrlParser
和useUnifiedTopology
MongoDB 配置选项。
较旧的 MongoDB 版本:使用 NPX 或 Docker
如果您更喜欢使用 NPX 或 Docker,则需要使用与兼容驱动程序一起发布的旧版本的 MongoDB Lens。
例如,MongoDB Lens 8.3.0
使用 MongoDB Node.js 驱动程序3.7.4
(参见: package-lock.json
)。
要使用 NPX 运行旧版本的 MongoDB Lens,请指定版本标签:
对于 Docker 来说类似:
配置
配置:MongoDB 连接字符串
服务器接受 MongoDB 连接字符串作为其唯一参数。
NPX 使用示例:
MongoDB 连接字符串具有以下格式:
连接字符串示例:
- 本地连接:
mongodb://localhost:27017
- 使用来自
admin
数据库的凭据连接到mydatabase
:mongodb://username:password@hostname:27017/mydatabase?authSource=admin
- 使用其他各种选项连接到
mydatabase
:mongodb://hostname:27017/mydatabase?retryWrites=true&w=majority
如果没有提供连接字符串,服务器将尝试通过本地连接进行连接。
配置:配置文件
MongoDB Lens 支持通过 JSON 配置文件进行广泛的自定义。
配置文件是可选的。如果未提供配置文件,MongoDB Lens 将使用默认设置运行。
您只需在配置文件中包含要自定义的设置即可。MongoDB Lens 将对任何省略的值使用默认设置。
[!TIP] MongoDB Lens 支持
.json
和.jsonc
(带有注释的 JSON)配置文件格式。
默认情况下,MongoDB Lens 在以下位置查找配置文件:
- 首先是
~/.mongodb-lens.jsonc
,然后回退到 - 如果前者不存在,
~/.mongodb-lens.json
要自定义配置文件路径,请将环境变量CONFIG_PATH
设置为所需的文件路径。
NPX 使用示例:
Docker Hub 使用示例:
配置:配置文件生成
您可以使用config:create
脚本自动生成配置文件:
该脚本提取上面的示例配置文件并将其保存到: ~/.mongodb-lens.jsonc
配置文件生成:自定义路径
您可以使用CONFIG_PATH
环境变量指定自定义输出位置。
- 如果
CONFIG_PATH
没有文件扩展名,则将其视为目录并附加.mongodb-lens.jsonc
- 如果
CONFIG_PATH
以.json
(而不是.jsonc
)结尾,则生成的文件中删除注释
NPX 使用示例:
Node.js 使用示例:
配置:多个 MongoDB 连接
MongoDB Lens 支持配置文件中带有别名的多个 MongoDB URI,允许您使用简单名称在不同的 MongoDB 实例之间轻松切换。
要配置多个连接,请将mongoUri
配置设置设置为具有别名-URI 对的对象:
使用以下配置:
- 列表中的第一个 URI(例如
main
)在启动时成为默认连接 - 您可以使用自然语言切换连接:
"Connect to backup"
或"Connect to atlas"
- 原始语法仍然有效:
"Connect to mongodb://localhost:27018"
list-connections
工具显示所有可用的连接别名
[!NOTE] 使用命令行参数指定连接时,您可以使用完整的 MongoDB URI 或配置文件中定义的别名。
[!TIP] 要在运行时添加连接别名,请使用
add-connection-alias
工具。
配置:环境变量覆盖
MongoDB Lens 支持配置设置的环境变量覆盖。
环境变量优先于配置文件设置。
配置环境变量遵循命名模式:
覆盖示例:
配置设置 | 环境变量覆盖 |
---|---|
mongoUri | CONFIG_MONGO_URI |
logLevel | CONFIG_LOG_LEVEL |
defaultDbName | CONFIG_DEFAULT_DB_NAME |
defaults.queryLimit | CONFIG_DEFAULTS_QUERY_LIMIT |
tools.export.defaultFormat | CONFIG_TOOLS_EXPORT_DEFAULT_FORMAT |
connectionOptions.maxPoolSize | CONFIG_CONNECTION_OPTIONS_MAX_POOL_SIZE |
connection.reconnectionRetries | CONFIG_CONNECTION_RECONNECTION_RETRIES |
对于环境变量值:
- 对于布尔设置,使用字符串值
'true'
或'false'
。 - 对于数字设置,请使用字符串表示形式。
- 对于嵌套对象或数组,请使用 JSON 字符串。
NPX 使用示例:
Docker Hub 使用示例:
配置:跨平台环境变量
为了在 Windows、macOS 和 Linux 上一致地使用环境变量,请考虑使用cross-env
:
- 全局安装跨环境:Copy
- 在本文档的示例中,为任何 NPX 或 Node.js 环境变量添加前缀:Copy
客户端设置
客户端设置:Claude Desktop
要将 MongoDB Lens 与 Claude Desktop 一起使用:
- 安装Claude Desktop
- 打开
claude_desktop_config.json
(如果不存在则创建):- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
- 根据配置选项添加 MongoDB Lens 服务器配置
- 重启Claude桌面
- 与 Claude 开始讨论您的 MongoDB 数据
Claude 桌面配置选项
对于每个选项:
- 将
mongodb://your-connection-string
替换为您的 MongoDB 连接字符串,或者省略它以使用默认的mongodb://localhost:27017
。 - 要使用自定义配置文件,请设置
CONFIG_PATH
环境变量。 - 要包含环境变量:
- 对于 NPX 或 Node.js,添加带有键值对的
"env": {}
,例如:Copy - 对于 Docker 添加
-e
标志,例如:Copy
- 对于 NPX 或 Node.js,添加带有键值对的
选项 1:NPX(推荐)
选项 2:Docker Hub 镜像
选项 3:本地 Node.js 安装
选项 4:本地 Docker 镜像
客户端设置:MCP 检查器
MCP Inspector是一款用于测试和调试 MCP 服务器的工具。
[!NOTE] MCP Inspector 在端口 3000 上启动代理服务器,在端口 5173 上启动 Web 客户端。
NPX 使用示例:
- 运行 MCP 检查器:Copy
- 打开 MCP 检查器: http://localhost:5173
MCP Inspector 应该支持 MongoDB Lens 的全部功能,包括集合名称和查询字段的自动完成。
更多信息请参见: MCP 检查器
客户端设置:其他 MCP 客户端
MongoDB Lens 应该可以与任何与 MCP 兼容的客户端一起使用。
更多信息,请参阅: MCP 文档:示例客户端
数据保护
为了在使用 MongoDB Lens 时保护您的数据,请考虑以下事项:
数据保护:只读用户帐户
将 MongoDB Lens 连接到数据库时,MongoDB 连接字符串中授予用户的权限决定了可以执行的操作。当用例合适时,只读用户可以防止意外的写入或删除,确保 MongoDB Lens 可以查询数据但不能更改数据。
要进行此设置,请创建一个具有read
角色的用户,该角色的作用域是目标数据库。在 MongoDB shell 中,您可以运行以下命令:
然后,将这些凭据应用到您的 MongoDB 连接字符串:
使用只读凭据是一种简单而有效的强制安全边界的方法,特别是当您探究模式或运行临时查询时。
数据保护:使用数据库备份
使用 MongoDB Lens 时,请考虑连接到托管在单独的 MongoDB 实例上的数据的备份副本。
首先使用mongodump
生成备份。接下来,启动一个新的 MongoDB 实例(例如,在27018
等其他端口上),并使用mongorestore
在该实例上还原备份。运行后,将 MongoDB Lens 指向备份实例的连接字符串(例如mongodb://localhost:27018/mydatabase
)。
这种方法为您提供了一个沙箱来测试复杂或破坏性的操作,而不会冒意外损坏实时数据的风险。
数据保护:数据流注意事项
数据流考虑:数据如何在系统中流动
当使用带有远程 LLM 提供商(例如通过 Claude Desktop 的 Anthropic)的 MCP 服务器时,了解数据如何在系统中流动是保护敏感信息免遭意外泄露的关键。
当您通过 MCP 客户端发送 MongoDB 相关查询时,会发生以下情况:
[!NOTE] 虽然此示例使用本地 MongoDB 实例,但相同的原则也适用于远程 MongoDB 实例。
- 您提交请求➥例如“显示所有 30 岁以上的用户”
- 您的客户将请求发送到远程 LLM➥ LLM 提供商会收到您的确切措辞以及可用的 MCP 工具及其参数的列表。
- 远程 LLM 解释您的请求➥ 它确定您的意图并指示客户端使用具有适当参数的特定 MCP 工具。
- 客户端要求 MongoDB Lens 运行该工具➥ 这通过 stdio 在您的机器上本地进行。
- MongoDB Lens 查询您的 MongoDB 数据库
- MongoDB Lens 检索您的 MongoDB 查询结果
- MongoDB Lens 将数据发送回客户端➥ 客户端接收由 MongoDB Lens 格式化的结果。
- 客户端将数据转发到远程 LLM➥ LLM 提供程序可以看到 MongoDB Lens 返回的精确数据。
- 远程 LLM 处理数据➥它可能会进一步总结或格式化结果。
- 远程LLM将最终回复发送给客户端➥客户端向您显示答案。
远程 LLM 提供商会同时看到您的原始请求和来自 MongoDB Lens 的完整响应。如果您的数据库包含敏感字段(例如密码、个人信息等),除非您采取预防措施,否则这些数据可能会被无意中传输给远程提供商。
数据流注意事项:使用投影保护敏感数据
为了防止敏感数据被发送到远程 LLM 提供商,请在使用find-documents
、 aggregate-data
或export-data
等工具时使用投影的概念。投影允许您指定在查询结果中包含或排除哪些字段,从而确保敏感信息保留在本地。
投影用法示例:
- “显示所有超过 30 岁的用户,但使用投影隐藏他们的密码。” ➥ 使用带有投影的
find-documents
工具
数据流注意事项:连接别名和密码
使用add-connection-alias
工具添加新的连接别名时,如果您使用的是远程 LLM 提供程序,请避免将别名添加到包含密码的 URI。由于您的请求会发送到 LLM,因此 URI 中的任何密码都可能被泄露。建议您在 MongoDB Lens配置文件中定义包含密码的别名,这样别名会保留在本地,不会传输到 LLM。
数据流考虑:本地设置以实现最大安全性
虽然超出了本文档的讨论范围,但为了获得最高级别的数据隐私,请考虑使用本地 MCP 客户端搭配本地托管的 LLM 模型。这种方法将所有请求和数据保留在本地环境中,从而消除了敏感信息被发送到远程提供商的风险。
数据保护:破坏性操作的确认
MongoDB Lens 针对潜在的破坏性操作实现了基于令牌的确认系统,需要两步过程来执行可能导致不受控制的数据丢失的工具:
- 第一次工具调用:返回一个 4 位数的确认令牌,该令牌在 5 分钟后过期
- 第二次工具调用:如果提供了有效的令牌,则执行操作
有关确认过程的示例,请参阅:使用确认保护
需要确认的工具包括:
drop-user
:删除数据库用户drop-index
:删除索引(可能影响性能)drop-database
:永久删除数据库drop-collection
:删除集合及其所有文档delete-document
:删除一个或多个文档bulk-operations
:包括删除操作时rename-collection
:当目标集合存在时将被删除
此保护机制旨在防止因输入错误或误操作导致意外数据丢失。它就像一道安全网,确保您在执行可能造成危害的操作之前了解其后果。
[!NOTE] 如果您在可以接受数据丢失的受控环境中工作,则可以配置 MongoDB Lens 以绕过确认并立即执行破坏性操作。
绕过破坏性操作的确认
您可能想要绕过令牌确认系统。
将环境变量CONFIG_DISABLE_DESTRUCTIVE_OPERATION_TOKENS
设置为true
,即可立即执行破坏性操作而无需确认:
禁用确认令牌会移除一项重要的安全机制。强烈建议仅在可接受数据丢失的受控环境中使用此选项,例如开发或测试环境。禁用此选项风险自负。
数据保护:禁用破坏性操作
禁用工具
MongoDB Lens 包含几个可以修改或删除数据的工具。要禁用特定工具,请将它们添加到配置文件中的disabled.tools
数组中:
[!NOTE] 还可以通过
disabled.resources
和disabled.prompts
设置禁用资源和提示。
高风险工具
这些工具可能会导致立即的数据丢失,应考虑在敏感环境中禁用:
drop-user
:删除数据库用户及其访问权限drop-index
:删除索引(可能会影响查询性能)drop-database
:永久删除整个数据库drop-collection
:永久删除集合及其所有文档delete-document
:删除符合指定条件的文档bulk-operations
:配置后可以执行批量删除rename-collection
:使用 drop target 选项时可以覆盖现有集合
中等风险工具
这些工具可以修改数据,但通常不会导致立即的数据丢失:
create-user
:创建具有可进行进一步更改的权限的用户transaction
:在一个事务中执行多个操作(可能存在复杂的变化)update-document
:更新可能覆盖现有数据的文档
只读配置
要获得完整的只读配置,请禁用所有可能具有破坏性的工具:
此配置允许 MongoDB Lens 查询和分析数据,同时防止任何修改,提供多层保护以防止意外数据丢失。
选择性组件启用
除了禁用组件之外,还可以使用配置文件中的enabled
设置来精确指定应启用哪些组件(隐式禁用所有其他组件):
[!IMPORTANT] 如果组件同时出现在
enabled
和disabled
列表中,则enabled
设置优先。
教程
以下教程将指导您设置包含示例数据的 MongoDB 容器,然后使用 MongoDB Lens 通过自然语言查询与其进行交互:
教程:1. 启动示例数据容器
[!NOTE] 本教程假设您已在系统上安装并运行Docker 。
[!IMPORTANT] 如果 Docker 已在端口 27017 上运行容器,请先停止它再继续。
- 初始化示例数据容器:Copy
- 验证容器是否正常运行:Copy
教程:2. 导入示例数据
MongoDB 提供了几个示例数据集,我们将使用它们来探索 MongoDB Lens。
- 下载示例数据集:Copy
- 将示例数据集复制到示例数据容器中:Copy
- 将示例数据集导入 MongoDB:Copy
这将导入几个数据库:
sample_airbnb
:Airbnb 房源和评论sample_analytics
:客户和账户数据sample_geospatial
:地理数据sample_mflix
:电影数据sample_restaurants
:餐厅数据sample_supplies
:供应链数据sample_training
:各种应用的训练数据sample_weatherdata
:天气测量
教程:3. 连接 MongoDB Lens
设置您的MCP 客户端通过以下方式连接到 MongoDB Lens: mongodb://localhost:27017
[!TIP] 从 MCP 客户端配置中省略连接字符串将使连接字符串默认为
mongodb://localhost:27017
。
Claude 桌面配置示例:
教程:4. 示例查询
在 MCP 客户端运行并连接到 MongoDB Lens 的情况下,尝试以下示例查询:
- 示例查询:基本数据库操作
- 示例查询:集合管理
- 示例查询:用户管理
- 示例查询:查询数据
- 示例查询:模式分析
- 示例查询:数据修改
- 示例查询:性能和索引管理
- 示例查询:地理空间和特殊操作
- 示例查询:导出、管理和其他功能
- 示例查询:连接管理
示例查询:基本数据库操作
- “列出所有数据库” ➥使用
list-databases
工具 - “我目前使用什么数据库?” ➥ 使用
current-database
工具 - “切换到 sample_mflix 数据库” ➥ 使用
use-database
工具 - “创建一个名为 test_db 的新数据库” ➥使用
create-database
工具 - “创建另一个名为 analytics_db 的数据库并切换到它” ➥ 使用
create-database
工具并设置 switch=true - “Drop test_db” ➥使用
drop-database
工具(需确认)
示例查询:集合管理
- “当前数据库中有哪些馆藏?” ➥ 使用
list-collections
工具 - “创建 user_logs 集合” ➥ 使用
create-collection
工具 - “将 user_logs 重命名为 system_logs” ➥ 使用
rename-collection
工具 - “Drop system_logs” ➥使用
drop-collection
工具(需确认) - “检查电影集合中的数据一致性” ➥使用
validate-collection
工具
示例查询:用户管理
- “创建只读用户进行分析” ➥使用
create-user
工具 - “删除非活动用户帐户” ➥使用
drop-user
工具(需确认)
示例查询:查询数据
- “统计电影集合中的所有文档” ➥使用
count-documents
工具 - “查找 IMDB 评分最高的 5 部电影” ➥ 使用
find-documents
工具 - “显示按年代分组的电影汇总数据” ➥ 使用
aggregate-data
工具 - “列出所有制作电影的特定国家” ➥ 使用
distinct-values
工具 - “搜索片名包含《教父》的电影” ➥ 使用
text-search
工具 - “使用适当的排序规则查找姓氏为 müller 的德国用户” ➥ 使用
collation-query
工具
示例查询:模式分析
- “电影集合的架构是什么样的?” ➥ 使用
analyze-schema
工具 - “比较用户和评论模式” ➥使用
compare-schemas
工具 - “为电影集合生成一个模式验证器” ➥使用
generate-schema-validator
工具 - “分析电影集合的常见查询模式” ➥使用
analyze-query-patterns
工具
示例查询:数据修改
- “插入新电影文档:<您的字段数据>” ➥使用
insert-document
工具 - “更新 1994 年以来的所有电影,添加‘经典’标记” ➥ 使用
update-document
工具 - “删除所有零评分的电影” ➥使用
delete-document
工具(需确认) - “对电影集合运行这些批量操作:<你的 JSON 数据>” ➥ 使用
bulk-operations
工具
[!TIP] 对于专门的 MongoDB 操作(如数组操作、按位操作或其他复杂更新),请通过
update-document
工具的update
和options
参数使用 MongoDB 的本机运算符。
示例查询:性能和索引管理
- “在电影集合的标题字段上创建索引” ➥使用
create-index
工具 - “删除 ratings_idx 索引” ➥ 使用
drop-index
工具(需确认) - “解释查找 1995 年电影的执行计划” ➥ 使用
explain-query
工具 - “获取当前数据库的统计信息” ➥ 使用
get-stats
工具,目标为数据库 - “显示电影收藏的统计信息” ➥ 使用带有 target=collection 的
get-stats
工具
示例查询:地理空间和特殊操作
- “切换到 sample_geospatial db,然后查找坐标 [-80.12, 26.46] 10 公里范围内的所有沉船” ➥ 使用
geo-query
工具 - “切换到 sample_analytics db,然后执行交易以在账户之间转移资金:” ➥ 使用
transaction
工具 - “为传感器读数创建时间序列集合” ➥使用
create-timeseries
工具 - “观察用户集合中的变化 30 秒” ➥ 使用
watch-changes
工具 - “列出图像 GridFS 存储桶中的所有文件” ➥ 使用
gridfs-operation
工具并指定 operation=list
示例查询:导出、管理和其他功能
- 切换到 sample_mflix db,然后根据‘tomatoes.critic.rating’将排名前 20 的电影导出为 CSV 文件,其中包含标题、年份和评级字段(在单个代码块中输出)” ➥ 使用
export-data
工具 - “切换到 sample_analytics db,然后检查其分片状态” ➥ 使用
shard-status
工具 - “清除集合缓存” ➥ 使用带有 target=collections 的
clear-cache
工具 - “清除所有缓存” ➥ 使用
clear-cache
工具 - “切换到 sample_weatherdata db,然后生成关于其当前状态的交互式报告” ➥ 使用多种工具
示例查询:连接管理
- “连接到 mongodb://localhost:27018” ➥ 使用
connect-mongodb
工具 - “连接到 mongodb+srv://username: password@cluster.mongodb.net /mydb” ➥使用
connect-mongodb
工具 - “连接回原始 mongodb 实例” ➥ 使用
connect-original
工具 - “连接到副本集而不验证连接:<副本集详细信息>” ➥ 使用
connect-mongodb
工具并设置validateConnection=false - “为 mongodb://username:password@prod-server:27017/mydb 添加连接别名‘prod’” ➥ 使用
add-connection-alias
工具
教程:5. 使用确认保护
MongoDB Lens 包含针对潜在破坏性操作的安全机制。其实际运作方式如下:
- 删除集合的请求:Copy
- MongoDB Lens 以警告和确认令牌进行响应:Copy
- 通过提交确认令牌来确认操作:Copy
- MongoDB Lens 执行操作:Copy
此两步过程通过要求明确确认来防止意外的数据丢失。
[!NOTE] 如果您在可以接受数据丢失的受控环境中工作,则可以配置 MongoDB Lens 以绕过确认并立即执行破坏性操作。
测试套件
MongoDB Lens 包含一个测试套件,用于验证工具、资源和提示的功能。
测试套件:运行测试
测试套件需要一个CONFIG_MONGO_URI
环境变量,可以将其设置为:
- MongoDB 连接字符串(例如
mongodb://localhost:27017
) mongodb-memory-server
(用于内存测试)
为了方便起见,可以使用以下脚本来运行测试:
[!NOTE] 测试套件会创建临时数据库和集合,这些数据库和集合会在测试完成后清理。
测试套件:命令行选项
选项 | 描述 |
---|---|
--list | 列出所有可用的测试但不运行它们 |
--test=<n> | 按名称运行特定测试(以逗号分隔) |
--group=<n> | 运行特定组中的所有测试(以逗号分隔) |
--pattern=<glob> | 运行匹配模式的测试(以逗号分隔) |
测试套件:示例
免责声明
MongoDB 透视图:
- 是根据MIT 许可证授权的。
- 与 MongoDB, Inc. 没有任何关联或认可。
- 是在人工智能的帮助下编写的,可能包含错误。
- 仅用于教育和实验目的。
- 按原样提供,不提供任何担保 - 请自行承担使用风险。
支持
如果您发现 MongoDB Lens 有帮助,请考虑通过以下方式支持我的工作:
贡献帮助我继续开发和改进这个工具,让我可以投入更多的时间来添加新功能,并确保它仍然是社区的宝贵资源。
This server cannot be installed
用于 MongoDB 数据库分析的全功能 MCP 服务器。
- Contents
- Quick Start
- Features
- Installation
- Configuration
- Client Setup
- Data Protection
- Tutorial
- Test Suite
- Disclaimer
- Support