기본적으로 MongoDB 셸에서 예쁜 인쇄


516

Mongo에게 예쁜 인쇄 출력을 알려주는 방법이 있습니까? 현재 모든 것이 한 줄로 출력되며 특히 중첩 배열과 문서를 사용하기가 어렵습니다.


이제 : Mongo에로드 된 외부 자바 스크립트에서 어떻게 인쇄합니까?
Witold Kaczurba

@WitoldKaczurba 질문에 대한 답변을 검색해보십시오. 답을 찾지 못하면 계속해서 새 질문으로 게시하십시오.
MForMarlon

답변:


868

( 참고 : 이것은 "default"에 대한 요구 사항이없는 질문의 원래 버전에 대한 답변입니다 )

예쁘게 요청할 수 있습니다.

db.collection.find().pretty()

18
당신이 원하는 경우 출력은 + 기타 향상된 기능은 체크 아웃 색상 화 github.com/TylerBrock/mongo-hacker @SAFX
라이언 슈마허

이제 : Mongo에로드 된 외부 자바 스크립트에서 어떻게 인쇄합니까? 이것은 작동하지 않습니다 ...
Witold Kaczurba

416

추가 할 수 있습니다

DBQuery.prototype._prettyShell = true

파일에이 $HOME/.mongorc.js꽤 사용하려면 기본적으로 전 세계적으로 인쇄 할 수 있습니다.


13
당신을 위해 그것을 비활성화하는 사용자 정의 기능을 만들고 싶을 것입니다. 이것을 gist.github.com/mathrawka/6239405에 추가하십시오 $HOME/.mongorc.js. 그러면 db.users.find (). ugly ()와 같은 것을 인쇄하지 않고도 얻을 수 있습니다.
staackuser2

5
+1 훌륭합니다. $ HOME 폴더에 .mongorc.js 파일이없는 사람들을 위해; 이 파일을 작성하고 명령을 추가 할 수 있습니다. 쉘을 다시 시작하면 작동합니다!
previous_developer

cli 또는 mongo shell에서이 옵션이 활성화되었는지 어떻게 확인할 수 있습니까? 내 말은, mongo --checkConf 'pretty'전화하지 말고 특별한 명령이 db.collection.find().limit(1)
Green

1
@ staackuser2, 그 링크가 끊어진 것 같습니다 :(
micseydel

질문이 지적한대로 이것이 허용되는 답변이어야합니다 : 이것을 기본 옵션으로 만드는 방법. 사용자는 이미 .pretty () 메소드에 익숙하지만 매번 작성하고 싶지는 않습니다.
Ariel Monaco

54

(참고 : 이것은 업데이트 된 질문에 대한 답변입니다)

CLI에서이 작업을 수행 할 수 있습니다.

echo DBQuery.prototype._prettyShell = true >> ~/.mongorc.js

그리고 항상 예쁜 결과를 출력 할 것입니다.


1
이것은 나를 위해 완벽하게 작동했습니다. | MongoDB 쉘 버전 : 2.6.7 및 Oh-My-Zsh 버전 e55c715
tjfwalker

20

기본적으로 자바 스크립트 셸이므로 다음을 사용할 수도 있습니다 toArray().

db.collection.find().toArray()

그러나 이렇게하면 pretty()반복 할 수있는 것과 달리 컬렉션의 모든 문서가 인쇄 됩니다. 참조 : http://docs.mongodb.org/manual/reference/method/cursor.toArray/


2
흥미롭게도 콘솔에서 .toArray()함수 는 함수보다 형식이 지정된 JSON을 출력 .pretty()합니다. 즉 : 내 컬렉션의 첫 번째 레코드가 나머지 (문제 일 수 있음)와 다르지만 한 줄로 모두 .pretty()덤프 하여 나머지 레코드와 같이 형식을 지정합니다.{ "_id" : "VERSION", "v" : "1.5" }.toArray()
wasatchwizard

17

아 .pretty ()는 다음과 같습니다.

db.collection.find().forEach(printjson);

8

Mongo-hacker (노드 모듈)를 사용해보십시오. 항상 예쁘게 인쇄됩니다. https://github.com/TylerBrock/mongo-hacker

더 많이 mongo shell을 향상시킵니다 (버전 4.0 이상, 현재 버전 3.0)

  • 채색
  • 추가 쉘 명령 (문서 수 / 문서 수 등)
  • API 추가 (db.collection.find ({...}). last (), db.collection.find ({...}). reverse () 등)
  • 집계 프레임 워크

프로덕션 환경에서 아직 문제없이 사용하고 있습니다.


mongodb가없고 유성을 설치하면 어떻게됩니까?
pihentagy

참고 : npm을 사용하여 mongo-hacker를 설치하면 분명히 덮어 씁니다 $HOME/.mongorc.js.
Hubro

1

질문이 있지만 외부로드 몽고에서 인쇄하는 방법을 알 수 없었습니다. 그래서:

이것은 콘솔 용이며 콘솔 에서 선호되지만 외부 몽고로드 자바 스크립트에서는 작동하지 않습니다.

db.quizes.find().pretty()

이것은 외부 몽고로드 javscript에서 작동합니다.

db.quizes.find().forEach(printjson)

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