Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB에서 forEach()로 문서 레코드를 정확하게 표시하는 방법

MongoDB에서 forEach()로 문서 레코드 정확하게 표시하기

MongoDB 컬렉션에 저장된 문서를 정확하게 표시하려면 forEach() 메서드를 사용하고, 값을 보기 좋게 출력하려면 printjson()을 함께 활용하면 됩니다. 먼저 예제에 사용할 문서들이 담긴 컬렉션을 생성해 보겠습니다.

> db.demo496.insertOne({"Name":"David","CountryName":"US"});{   "acknowledged" : true,   "insertedId" : ObjectId("5e84b04ab0f3fa88e22790ce")}> db.demo496.insertOne({"Name":"John","CountryName":"AUS"});{   "acknowledged" : true,   "insertedId" : ObjectId("5e84b054b0f3fa88e22790cf")}> db.demo496.insertOne({"Name":"Robert","CountryName":"UK"});{   "acknowledged" : true,   "insertedId" : ObjectId("5e84b05db0f3fa88e22790d0")}

find() 메서드로 전체 문서 조회하기

find() 메서드를 사용하면 컬렉션의 모든 문서를 한 번에 조회할 수 있습니다.

> db.demo496.find();

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

{ "_id" : ObjectId("5e84b04ab0f3fa88e22790ce"), "Name" : "David", "CountryName" : "US" }{ "_id" : ObjectId("5e84b054b0f3fa88e22790cf"), "Name" : "John", "CountryName" : "AUS" }{ "_id" : ObjectId("5e84b05db0f3fa88e22790d0"), "Name" : "Robert", "CountryName" : "UK" }

forEach() 콜백의 두 번째 매개변수 출력 시 undefined 반환

forEach()의 콜백 함수는 두 개의 매개변수를 받습니다. 첫 번째 매개변수(done)는 현재 처리 중인 문서를, 두 번째 매개변수(notDone)는 아직 처리되지 않은 작업 정보를 나타냅니다. 두 번째 매개변수를 출력하면 undefined가 반환됩니다.

> db.demo496.find({}).forEach( (done, notDone) => { printjson(notDone); });

실행 결과는 다음과 같습니다.

undefinedundefinedundefined

forEach()로 실제 문서 내용 출력하기

반대로 첫 번째 매개변수인 done을 출력하면 각 문서의 실제 내용이 정확하게 표시됩니다.

> db.demo496.find({}).forEach( (done, notDone) => { printjson(done); });

실행 결과는 다음과 같습니다.

{   "_id" : ObjectId("5e84b04ab0f3fa88e22790ce"),   "Name" : "David",   "CountryName" : "US"}{   "_id" : ObjectId("5e84b054b0f3fa88e22790cf"),   "Name" : "John",   "CountryName" : "AUS"}{   "_id" : ObjectId("5e84b05db0f3fa88e22790d0"),   "Name" : "Robert",   "CountryName" : "UK"}

이처럼 forEach() 콜백 함수에서 어떤 매개변수를 참조하느냐에 따라 출력 결과가 달라집니다. 문서 데이터를 확인하려면 반드시 첫 번째 매개변수를 사용해야 한다는 점을 기억하세요.