AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

Cursors

커서 는 쿼리 결과에 대한 포인터입니다. 커서를 사용하면 데이터베이스 결과를 한 번에 한 배치 반복할 수 있습니다.

When you execute find() and aggregate() methods using mongosh or a driver, they return a cursor containing a batch of results. You can access the resulting documents by manually iterating the cursor or using the toArray() method. For more information, see Iterate a Cursor in mongosh.

고정 사이즈 컬렉션에 액세스하는 경우 컬렉션에 새 문서가 삽입될 때 검색하는 tailable cursor 사용할 수 있습니다. 자세한 내용은 테일 커서(tailable cursor)를 참조하세요.

클라이언트 세션 내에서 생성된 커서는 다음 시나리오에서 닫힙니다.

  • 클라이언트 커서 소진합니다.

  • 사용자가 커서 수동으로 닫습니다.

  • 사용자가 세션을 수동으로 종료합니다.

  • 세션 시간이 초과되었습니다.

cursorTimeoutMillis 매개변수는 유휴 커서의 시간 초과를 지정하며 기본값은 10 분입니다. MongoDB 이 임계값 이후에 세션 외부에서 생성된 유휴 커서의 시간을 초과합니다. MongoDB 커서 새 배치 반환할 때마다 커서 커서 제한을 연장합니다. 커서 수동으로 닫으려면 killCursors를 사용합니다.

서버 세션 시간 제한은 localLogicalSessionTimeoutMinutes 매개 변수로 지정되며 기본값은 30 분입니다. 세션을 30 분 이상으로 연장하려면 refreshSessions를 사용합니다. 세션을 수동으로 종료하려면 killSessions를 사용합니다.

If a cursor is opened outside of a session, MongoDB drivers and mongosh create an implicit session and associate it with the operation.

커서 문서를 반환할 때 읽기 고려 (read concern) 수준에 따라 다른 작업이 배경 에서 실행 결과에 영향을 미칠 수 있습니다. 자세한 내용은 격리, 일관성 및 최신성 읽기를 참조하세요.

When you run a find or aggregate operation, the database executes a query until it finds enough documents to fill a batch. When a batch is filled, the query pauses. The paused query on the server is referred to as a cursor and the ID associated with the paused query is a cursor ID.

데이터베이스 결과 배치 및 커서 ID 클라이언트 에 반환합니다. MongoDB 드라이버 및 mongosh 는 이 데이터를 클라이언트 사이드 커서 인스턴스 에 저장 . 배치 끝에 도달했을 때 일치하는 문서가 더 있는 경우 클라이언트 사이드 커서 getMore 을 사용하여 서버에서 다음 배치를 자동으로 검색합니다. 현재 배치에 남아 있는 결과의 수를 확인하려면 cursor.objsLeftInBatch()를 사용합니다. 현재 배치 또는 서버에 결과가 남아 있는지 확인하려면 cursor.hasNext()를 사용합니다.

커서는 결과를 배치로 반환합니다. 배치의 데이터 양은 최대 BSON 문서 크기 (16 MiB)보다 작아야 합니다. 배치에 허용되는 최대 문서 수를 지정하려면 cursor.batchSize()를 참조하세요. 기본값 으로 find() 및 aggregate() 작업의 배치 크기는 101입니다. 결과 커서에 대해 실행되는 후속 getMore 작업에는 기본값 배치 크기가 없으므로 16 메비바이트 메시지 크기로만 제한됩니다.

인덱스 없이 정렬 작업을 포함하는 쿼리의 경우 서버는 메모리에 있는 모든 문서를 불러와서 정렬을 수행한 후 결과를 반환해야 합니다.

db.serverStatus() 메서드는 metrics 필드 포함된 문서 반환합니다. metrics 필드 에는 자세한 커서 정보가 포함된 metrics.cursor 필드 포함되어 있습니다. 자세한 학습 은 metrics.cursor를 참조하세요.