如何在新版MongoDB Shell(mongosh)中获取未截断的distinct字段值列表
新版MongoDB Shell(mongosh)默认会对长数组做展示截断,这只是输出层的展示限制,distinct() 接口本身已经返回了全部去重值,只需调整展示配置即可看到完整列表,可用方案如下:
方案1:单次临时输出完整结果
直接将返回结果通过JSON序列化输出,无需修改全局配置:
// 把查询结果赋值给变量后序列化输出 const distinctIds = db.myCollection.distinct("myExternalId") JSON.stringify(distinctIds, null, 2)
如果不需要格式化缩进,去掉后面的null, 2参数即可输出压缩后的完整列表。
方案2:全局配置关闭数组截断
如果经常需要查看长列表,可以修改mongosh的全局配置,永久关闭数组截断限制:
// 调整对象检查深度为无限,避免嵌套结构截断 config.set("inspectDepth", Infinity) // 调整数组展示长度为无限,避免长数组截断 config.set("inspectArrayLength", Infinity)
配置修改后立即生效,后续再执行distinct()查询会直接输出完整的去重值列表。
内容的提问来源于stack exchange,提问作者M. Justin
相关产品推荐
相关产品推荐

