10

有没有办法在没有来自 Mongo shell 的尾随换行符的情况下写入 STDOUT?print()除了可用之外,我似乎找不到任何东西。

4

3 回答 3

4

这与我关于从控制台读取一行的SO 问题有关。根据@Stennie 的评论,在当前 (2.0.6) 版本的 Mongo shell 中是不可能的。

于 2012-07-09T00:01:06.937 回答
2

可能有办法解决它。您可以将结果累积在一个中间变量(可以是数组、字符串或任何其他数据结构)中,然后在一行中打印整个内容。下面的示例说明了使用数组从查询结果中捕获值,然后将数组转换为以逗号作为分隔符的字符串。就我而言,我只对这个_id领域感兴趣:

var cursor = db.getCollection('<collection name>').find(<your query goes here>)
let values = []
cursor.forEach((doc) => values.push(doc._id))
print(values.join(','))

根据您期望的结果数量,不确定中间数据结构消耗的空间是否会压倒内存。如果是这种情况,则可以制作查询以返回较小的数据子集,这些数据子集在相加时构成您想要的完整结果集。

于 2020-07-15T21:37:23.047 回答
-3

这是一个很老的问题,但仍然相关,所以回答。

可以使用 printjsononeline()。

于 2016-10-21T11:57:28.327 回答