Nice programing

Mongo에서 .find ()를 수행 할 때 .findOne ()을 수행하는 것과 동일한 결과를 표시하려면 어떻게해야합니까?

nicepro 2020. 11. 3. 19:14
반응형

Mongo에서 .find ()를 수행 할 때 .findOne ()을 수행하는 것과 동일한 결과를 표시하려면 어떻게해야합니까?


findOne() 예쁘게 인쇄 된 json 객체가 생성됩니다.

find() 결과적으로 json 객체가 손상됩니다.

mongo 셸에 표시 할 때 find()와 동일 하게 만들 수 findOne()있습니까?


javascript를 사용하여 스크립팅하는 경우 dcrosta의 답변을 사용할 수 있습니다. 그러나 mongo 대화 형 쉘에 직접 예쁜 인쇄를하려면 find () 쿼리에 pretty ()를 추가해야합니다.

셸에 다음을 입력합니다. db.yourcollection.find().pretty()


find()supports forEach()에서 반환 한 커서 개체 이므로 다음을 사용할 수 있습니다.

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

그러나 find()처음 10 개의 객체를 표시 하는 기본 출력과 달리 반복을 계속할지 여부를 선택할 수 있도록 forEach()하면 전체 결과 집합이 반복됩니다. 따라서 쿼리가 많은 결과를 반환하는 경우 시간이 오래 걸리고별로 도움이되지 않을 수 있습니다. limit()여기 당신의 친구입니다.


을 사용하면 이미 정답이 제공됩니다 .pretty().

그러나 참고로 커서에서 .toArray ()를 호출하여 문서를 JSON의 javascript 배열로 가져올 수도 있습니다.

db.foo.find().toArray()

편리한 mongo-shell 인핸서 mongo-hacker ( http://mongodb-tools.com/tool/mongo-hacker/ )를 사용하면 더 멋진 일을 할 수 있습니다.


질문을 받았을 당시에는 사용할 수 없었을 수도 있지만 모든 find()쿼리에 대한 기본 출력을 예쁘게 만들기 위해 다음을 사용합니다.

DBQuery.prototype._prettyShell = true

또한 다음을 추가합니다.

DBQuery.prototype.ugly = function() {
    this._prettyShell = false;
    return this;
}

이를 통해 find()다음을 사용하여 단일 쿼리 의 결과를 uglify 할 수 있습니다 .

db.mycollection.find().ugly()

일반적으로 ~/.mongorc.js모든 mongo cli 셸에서 사용할 수 있도록 두 프로토 타입 선언을 파일에 추가합니다 .

참고 URL : https://stackoverflow.com/questions/6756024/in-mongo-how-do-i-make-the-display-of-results-when-doing-a-find-the-same-as

반응형