代码之家  ›  专栏  ›  技术社区  ›  nonopolarity

如何在MongoDB的shell中打印出20多个项目(文档)?

  •  233
  • nonopolarity  · 技术社区  · 14 年前
    db.foo.find().limit(300)
    

    不会做的。它仍然只打印出20份文件。

    db.foo.find().toArray()
    db.foo.find().forEach(printjson)
    

    是否都打印出每个文档的扩展视图,而不是 find() :

    6 回复  |  直到 6 年前
        1
  •  339
  •   franzlorenzon    10 年前
        2
  •  131
  •   Shashank Agrawal    8 年前

    如果你想显示所有你能做的结果 db.collection.find().toArray() 在没有它的情况下获得所有结果。

        3
  •  95
  •   halfdan    14 年前

    你可以使用 it 在shell内部迭代接下来的20个结果。只是类型 如果你看到“有更多”,你会看到接下来的20个项目。

        4
  •  35
  •   Wilfred Knievel    12 年前

    总是可以做到:

    db.foo.find().forEach(function(f){print(tojson(f, '', true));});
    

    以获得紧凑的视图。

    此外,我发现限制find返回的字段非常有用,因此:

    db.foo.find({},{name:1}).forEach(function(f){print(tojson(f, '', true));});
    

    它将只从foo返回\u id和name字段。

        5
  •  1
  •   Sahith Vibudhi    6 年前

    我建议你有一个 ~/.mongorc.js 文件,这样您就不必每次都设置默认大小。

     # execute in your terminal
     touch ~/.mongorc.js
     echo 'DBQuery.shellBatchSize = 100;' > ~/.mongorc.js
     # add one more line to always prettyprint the ouput
     echo 'DBQuery.prototype._prettyShell = true; ' >> ~/.mongorc.js
    

    为了进一步了解您还可以做什么,我建议您阅读本文: http://mo.github.io/2017/01/22/mongo-db-tips-and-tricks.html

        6
  •  0
  •   Harsh Raj    7 年前

    在mongo shell中,如果返回的光标未使用var关键字分配给变量,则会自动迭代该光标以访问与查询匹配的前20个文档。可以设置dbquery.shellbatchsize变量以更改自动迭代的文档数。

    参考文献 https://docs.mongodb.com/v3.2/reference/method/db.collection.find/