如何通过shell执行mongosh命令并获取无冗余的纯净输出
mongosh执行查询脚本获取纯净输出的方法
你当前已经加了--quiet参数但仍有冗余输出,是因为mongosh默认还会加载用户配置、输出告警/遥测类提示,可通过以下方式优化:
1. 补充启动参数过滤额外输出
在原有命令基础上追加--norc、--no-warning参数,禁用用户配置加载和告警类输出,组合后命令如下:
mongosh --quiet --norc --no-warning [db URL] < myscriptfile.js
参数说明:
--norc:禁止加载当前用户的.mongoshrc.js配置文件,避免自定义配置逻辑产生的额外输出--no-warning:关闭版本弃用提示、功能告警、遥测提示类非必要输出
2. 优化脚本内的输出逻辑
不要在脚本中直接执行查询语句(如直接写db.collection.find()会返回带游标属性的格式化输出),统一使用JSON.stringify输出序列化后的结果,示例脚本内容如下:
// 示例:查询集合数据并输出纯净JSON const queryResult = db.users.find({age: {$gt: 18}}).toArray(); print(JSON.stringify(queryResult)); // 需要格式化输出提升可读性的话可以改为 print(JSON.stringify(queryResult, null, 2))
3. 额外shell过滤(可选)
如果仍存在零星空行、特殊字符,可以通过管道工具二次过滤,比如删除所有空行:
mongosh --quiet --norc --no-warning [db URL] < myscriptfile.js | grep -v '^$'
内容的提问来源于stack exchange,提问作者Ludwig Magnusson
相关产品推荐
相关产品推荐

