"Mongo shell中的数组输出格式"
"Mongo shell中的数组输出格式"
有没有一种方法可以强制Mongo shell按顺序输出数组内容?具体来说,给定数组[8888,8888,8888,8888],我希望它呈现为8888,8888,8888,8888
,而不是我一直得到的
"r" : [ 8888, 8888, 8888, 8888 ]
。(实际数组有84个元素的8888。我知道这个示例会正确打印)更具体地说,我试图让Mandelbrot分形的聚合代码工作,就像John Page发布的那样,使字体大小真正变小。然而,即使将字体大小设置为2且终端窗口设置为1000列,数组仍然会垂直打印。我做了一些实验,根据每个数组元素的大小,字符间距和字体大小,一个粗略的指南是,如果在方括号[ ]之间的字符总数> 50或元素数> 20,则数组会垂直打印。我在Terminal bash shell中使用node.js尝试了相同的实验,但没有发生这种情况。因此,它似乎是一个Mongo shell格式问题。我尝试使用DBQuery.prototype._prettyShell = false
作为在Mongo shell中进行漂亮打印的相反方法,但没有运气。Page先生亲切地再次测试了代码,并向我保证它按预期工作。为了完整起见,我运行的MongoDB shell版本是:2.4.9,在Mac OS X 10.7.5下使用终端版本2.2.3(303.2)。
非常感谢。
(注意:原始代码中发布时在初始for循环中缺少2个左大括号,我已经在我的代码中进行了修正,这不是问题的原因。聚合结果产生的最终数组是正确的,只是它们无法正确地呈现。)
啊,是的。你可能没有注意到,或者不完全理解这篇文章中的这句话:
DBQuery.shellBatchSize = 500
解释一下,那是设置游标在一次操作中获取的文档数量。因此,这个数字比默认的游标设置(大约25)要大。
而且这是重点。他在使用一款开发版本来做这个,即即将发布的聚合函数会返回一个游标,而不是在当前版本中生成的文档数组。
所以如果你仍然感兴趣,你可以从下载页面获取当前的“发布候选版”,这应该可以让你复制结果。
我自己没搞定(也没有时间玩了),但是问题在于要将终端列和行设置为博客文章中显示的屏幕截图中的样子,并且缩小终端窗口以减小显示的字体大小。
因此,是有可能的,但你没有安装相同的工具。