MongoDB 与 Redis
非 SQL 引擎拥有各自的运行器,它们按照自身的数据模型来塑造,而不是被硬塞进表格网格。这两者的浏览都在浏览你的数据中介绍;本页讲的是运行命令。
两个运行器都需要 Editor 角色,并都会被记录到 db_query_log 审计表中。
MongoDB — Mongo Shell
Section titled “MongoDB — Mongo Shell”Mongo Shell 针对所选数据库运行一段任意的 mongosh 脚本。它是集合浏览器下方的一个可折叠面板,默认折叠。
- Pier 会在你的脚本前面加上
db = db.getSiblingDB("<selected database>"),因此db指向你所选的数据库 — 然后逐字运行其余部分。 - 脚本通过
mongosh在 服务容器内部 执行(经由 docker-exec),并以服务加密环境中的 root 用户身份进行认证。Pier 二进制文件中没有原生 Mongo 驱动。 - shell 的文本输出会原样返回,因此
print(...)、printjson(...)以及表达式的隐式结果都会显示出来。
示例脚本:
// count documents in a collectiondb.getCollection("orders").countDocuments({ status: "paid" })
// find with a projectiondb.getCollection("users").find({ active: true }, { email: 1 }).limit(5).toArray()
// an aggregationdb.getCollection("events").aggregate([ { $group: { _id: "$type", n: { $sum: 1 } } }, { $sort: { n: -1 } }]).toArray()对于只读浏览(数据库、集合、以 EJSON 形式分页的文档)你只需要 Viewer — 参见浏览你的数据。
Redis / Valkey — 命令框
Section titled “Redis / Valkey — 命令框”Redis 视图把键浏览器与一个 命令框 配对,命令框运行单条原始命令并将回复渲染为 JSON。
- 输入一条命令,例如
GET mykey、HGETALL session:42或TTL token:abc,然后运行它。 - 命令行的分词支持双引号,因此
SET greeting "hello world"会保持被引用的参数完整。 - 回复会被转换为 JSON:批量字符串、整数、数组/集合、映射以及
OK都会映射为它们各自自然的 JSON 形状。 - 所选的 数据库索引(0–15) 会应用到该命令上,与键浏览器相同。
通过键浏览器进行的读取(SCAN、按类型识别的 GET/LRANGE/HGETALL/……、TTL)只需要 Viewer;运行任意命令则需要 Editor,因为一条命令可能改动或删除数据。