230


75

MongoDBのシェルで20を超えるアイテム(ドキュメント)を印刷する方法は?
db.foo.find().limit(300)

しません まだ20ドキュメントのみを印刷します。

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

両方とも、 `find()`の1行バージョンではなく、各ドキュメントの非常に拡張されたビューを印刷します。

6 Answer


331


_ DBQuery.shellBatchSize = 300 _

しましょう。


126


すべての結果を表示したい場合、シェルから `db.collection.find()。toArray()`を実行して、それなしですべての結果を取得できます。


96


シェル内で「it」を使用して、次の20個の結果を反復処理できます。 「もっとある」と表示されたら、「it」と入力すると、次の20項目が表示されます。


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フィールドのみを返します。


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


0


mongoシェルでは、返されたカーソルがvarキーワードを使用して変数に割り当てられていない場合、カーソルは自動的に反復され、クエリに一致する最初の20ドキュメントまでアクセスします。 DBQuery.shellBatchSize変数を設定して、自動反復ドキュメントの数を変更できます。

リファレンス-https://docs.mongodb.com/v3.2/reference/method/db.collection.find/