Navigation

getMore

On this page

Definition

getMore

New in version 3.2.

Use in conjunction with commands that return a cursor, e.g. find and aggregate, to return subsequent batches of documents currently pointed to by the cursor.

Syntax

The getMore command has the following form:

db.runCommand(
   {
      "getMore": <long>,
      "collection": <string>,
      "batchSize": <int>,
      "maxTimeMS": <int>
   }
)

Command Fields

The command accepts the following fields:

Field Type Description
getMore long The cursor id.
collection string The name of the collection over which the cursor is operating.
batchSize positive integer Optional. The number of documents to return in the batch.
maxTimeMS non-negative integer

Optional. Specifies a time limit in milliseconds for processing operations on a cursor. If you do not specify a value for maxTimeMS, operations will not time out. A value of 0 explicitly specifies the default unbounded behavior.

MongoDB terminates operations that exceed their allotted time limit using the same mechanism as db.killOp(). MongoDB only terminates an operation at one of its designated interrupt points.

Output

The command returns a document that contains the cursor information as well as the next batch.

For example, a document similar to the one below may be returned when getMore is run on a cursor that was originally created by a find operation on a sharded cluster:

{
   "cursor" : {
      "id" : NumberLong("678960441858272731"),
      "ns" : "test.contacts",
      "nextBatch" : [
         {
            "_id" : ObjectId("5e8e501e1a32d227f9085857"),
            "zipcode" : "220000"
         }
      ]
   },
   "ok" : 1,
   "operationTime" : Timestamp(1586385239, 2),
   "$clusterTime" : {
      "clusterTime" : Timestamp(1586385239, 2),
      "signature" : {
         "hash" : BinData(0,"lLjejeW6AQGReR9x1PD8xU+tP+A="),
         "keyId" : NumberLong("6813467763969884181")
      }
   }
}
Field Description
cursor Contains the cursor information, including the cursor id as well as the nextBatch of documents.
"ok" Indicates whether the command has succeeded (1) or failed (0).

In addition to the aforementioned getMore-specific fields, the db.runCommand() includes the following information for replica sets and sharded clusters:

  • $clusterTime
  • operationTime

See db.runCommand() Results for details.

Behavior

Access Control

New in version 3.6.

If authentication is turned on, you can only issue a getMore against cursors you created.

Sessions

New in version 4.0.

For cursors created inside a session, you cannot call getMore outside the session.

Similarly, for cursors created outside of a session, you cannot call getMore inside a session.

Transactions

New in version 4.0.

For multi-document transactions:

  • For cursors created outside of a transaction, you cannot call getMore inside the transaction.
  • For cursors created in a transaction, you cannot call getMore outside the transaction.
←   getLastError insert  →