MongoDB의 쉘에서 20 개 이상의 항목 (문서)을 인쇄하는 방법은 무엇입니까?


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

하지 않습니다. 여전히 20 개의 문서 만 인쇄합니다.

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

에 대한 한 줄 버전 대신 각 문서의 매우 확장 된보기를 인쇄합니다 find().


기본적으로 mongo 쉘은 처음 20 개의 문서 만 인쇄 Type it하므로 쉘 에 입력하여 다음 배치 20 개의 문서를 얻을 수 있습니다 . 등등.
roottraveller 2019

답변:


381

DBQuery.shellBatchSize = 300

할 것이다.

MongoDB Docs-mongo Shell 구성-mongo Shell 배치 크기 변경


1
이것을 영구적으로 만드는 방법이 있습니까?
Lukasz Wiktor 2016 년

7
@LukaszWiktor 예, $ HOME / .mongorc.js 파일을 생성하고 해당 shellBatchSize 설정을 거기에 넣을 수 있습니다. mine은 쿼리 배치 크기 설정을 가지며 rs.slaveOk ()가 활성화되었습니다. 명령 줄을 통해 --eval을 사용할 때 사용법도 약간 다릅니다. 참조 : docs.mongodb.com/manual/mongo/#mongorc-js-file
matias elgart

1
대단해! 감사합니다 @matiaselgart
Lukasz Wiktor

링크가 오래되었으므로 그러한 정보가 없습니다. 또한 이것을 환경 변수로 전달할 수 있습니까?
phil294

157

쉘에서 모든 결과를 표시하려면 모든 결과를 표시 db.collection.find().toArray()하지 않고 수행 할 수 있습니다.


이. 껍질만으로 잘라서 붙여 넣을 수 있으면 충분합니다.
superluminary

이것은 더 유용합니다
anwerj

이것이 바로 나를 위해 한 일입니다. 사실 Robomongo 출력의 모든 결과를 저장할 수있는 방법이 필요하다고 들었습니다. 감사합니다!
Andrés Botero

잘 됐네요, 또한 나 관에게 : JQ의 결과를 보자
오메르 반 Kloeten

완벽한 솔루션! 남자, 이것은 매우 유용합니다.
coderpc

93

it쉘 내부를 사용하여 다음 20 개 결과를 반복 할 수 있습니다 . it"더 많음"이 표시되면 입력 하면 다음 20 개 항목이 표시됩니다.


35
오 그것은 사용하지 않고 모든 인쇄하는 방법에 대해 정말it
nonopolarity

15
고맙습니다 halfdan, 당신은 두 번의 사용자 이름은 당신이 말한다!
cassi.lup

6
전체 아이디어는 반복자를 사용하지 않는 것입니다
Amir Kost

2
이것이 OP가 피하고 싶었던 것 (기본 동작)이기 때문에 하향 투표했습니다.
crafter

41

항상 할 수 있습니다 :

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
쉘 스크립트 (몽고 클라이언트와 함께 --eval) 에서 실행될 수 있다는 점에서이 방법이 마음에 듭니다
Zheng Kai

1
@ZhengKai 쉘을 사용하지 않고 스크립트를 사용하는 경우 shellBatchSize는 관련이 없습니다. 쉘에서 결과가 반복되지 않으므로 직접 수행해야합니다.
Asya Kamsky

tojson ()은 DBQuery에서 변환하기 위해 정확히 찾고 있던 것이 었습니다. 감사합니다!
Mark Pieszak-Trilon.io

4

~/.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/

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.