Docs Menu
Docs Home
/
데이터베이스 매뉴얼
/ / /

에서 커서 반복 mongosh

db.collection.find() 메서드는 커서를 반환합니다. 문서에 액세스하려면 커서를 반복적으로 움직여야 합니다. 그러나 mongosh에서 반환된 커서가 var 키워드를 사용하여 변수에 할당되지 않은 경우 커서가 자동으로 최대 20회 [1] 반복되어 결과에 최대 처음 20개 문서를 출력합니다.

다음 예시는 문서에 액세스하거나 iterator 인덱스를 사용하기 위해 커서를 수동으로 반복하는 방법을 설명합니다.

mongosh에서는 find() 메서드에서 반환된 커서를 var 키워드를 사용하여 변수에 할당하면 커서가 자동으로 반복되지 않습니다.

아래 예시와 같이 셸에서 커서 변수를 호출하여 최대 20회[1] 까지 반복하고 일치하는 문서를 인쇄할 수 있습니다.

var myCursor = db.users.find( { type: 2 } );
myCursor

다음 예시에서와 같이 커서 메서드 next()를 사용하여 문서에 액세스할 수도 있습니다:

var myCursor = db.users.find( { type: 2 } );
while (myCursor.hasNext()) {
print(tojson(myCursor.next()));
}

대체 인쇄 작업으로서 printjson()를 대체하는 print(tojson()) 헬퍼 메서드를 고려합니다.

var myCursor = db.users.find( { type: 2 } );
while (myCursor.hasNext()) {
printjson(myCursor.next());
}

다음 예시와 같이 커서 메서드 forEach()를 사용하여 커서를 반복하고 문서에 액세스할 수 있습니다.

var myCursor = db.users.find( { type: 2 } );
myCursor.forEach(printjson);

커서 메서드에 대한 자세한 내용은 JavaScript 커서 메서드드라이버 설명서에서 확인 가능합니다.

[1](1, 2) DBQuery.shellBatchSize 속성을 설정하여 문서 수 기본값 20을 변경할 수 있습니다.

mongosh에서 toArray() 메서드를 사용하여 다음과 같이 커서를 반복하고 문서를 배열로 반환할 수 있습니다.

var myCursor = db.inventory.find( { type: 2 } );
var documentArray = myCursor.toArray();
var myDocument = documentArray[3];

toArray() 메서드는 커서가 반환한 모든 문서를 RAM에 불러오고, toArray() 메서드는 커서를 소진합니다.

또한 일부 드라이버는 커서의 인덱스를 사용하여 문서에 액세스할 수 있습니다(예: cursor[index]). 이는 toArray() 메서드를 먼저 호출한 후 결과 배열의 인덱스를 사용하기 위한 빠른 방법입니다.

다음 예를 고려하십시오.

var myCursor = db.users.find( { type: 2 } );
var myDocument = myCursor[1];

myCursor[1]은 다음 예시와 동일합니다.

myCursor.toArray() [1];

돌아가기

Cursors

이 페이지의 내용