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.