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

时间:2010-09-14 01:10:51

标签: mongodb

db.foo.find().limit(300)

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

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

将打印出每个文档的非常展开的视图,而不是find()的1行版本:

7 个答案:

答案 0 :(得分:344)

  

DBQuery.shellBatchSize = 300

会做的。

MongoDB Docs - Getting Started with the mongo Shell - Executing Queries

答案 1 :(得分:136)

如果你想要显示所有结果,你可以在shell中db.collection.find().toArray()获取所有结果。

答案 2 :(得分:95)

您可以在shell中使用it来迭代接下来的20个结果。如果您看到“有更多”,只需输入it,您就会看到接下来的20个项目。

答案 3 :(得分:35)

总能做到:

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

获得紧凑的视图。

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

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

只返回foo中的_id和name字段。

答案 4 :(得分:1)

我建议您有一个~/.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

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

agen = UserAddress.objects.filter(status="Agen")
tampunganjumlah = []
for tampungini in agen:
    postingan_list2 = WriteStream.objects.filter(created_at__year=pkk, created_at__month=pk, nama_userr=tampungini.nama)
    for tampunglain in postingan_list2:
        get_transactions = api.getaddresstransaction(tampunglain.userr, tampunglain.address)
        amount = get_transactions['balance'].get('assets')[0].get('qty')
        total_penjualan1 = total_penjualan1 + amount            
        if total_penjualan1 >=1:
            tampunganjumlah.append(total_penjualan1)
        total_penjualan1 = 0

使用您的数据库名称 就我而言,我正在使用 - show dbs 然后 - use smartbank - 只是为了检查文档集合名称。 最后,show collections 你的收藏名称db..find() -

find({})

可以指定show dbs use smartbank show collections db.users.find() or db.users.find({}) or db.users.find({_id: ObjectId("60c8823cbe9c1c21604f642b")}) or db.users.find({}).limit(20) (此处写文档id)获取单个文档

或者您可以指定限制 - _id:ObjectId

enter image description here