定義
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
- MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
このコマンドの構文は、次のとおりです。
db.runCommand( { getMore: <long>, collection: <string>, batchSize: <int>, maxTimeMS: <int>, comment: <any> } )
コマンドフィールド
このコマンドは、次のフィールドを受け入れます。
フィールド | タイプ | 説明 |
|---|---|---|
| long | カーソル識別子。 |
| string | カーソルが操作するコレクションの名前。 |
| 正の整数 | 任意.各バッチするで返されるドキュメントの最大数。
|
| non-negative integer | 任意。 上限付きコレクション の 追尾可能 (tailable) カーソル クエリに一致する新しいドキュメントをサーバーが待機する時間を指定します。追尾可能な ドライバーがこの値を設定するのは、
MongoDB は、
|
| any | 任意。このコマンドに添付するユーザー指定のコメント。設定すると、このコメントは以下の場所にこのコマンドの記録と合わせて表示されます。
コメントには、有効な BSON 型(string, integer, object, array など)を使用できます。 省略した場合、 |
出力
このコマンドは、カーソル情報と次のバッチを含むドキュメントを返します。
たとえば、シャーディングされたクラスターで find 操作によって作成されたカーソルで getMore を実行すると、次の出力のようなドキュメントが返されます。
{ "cursor" : { "id" : Long("678960441858272731"), "ns" : "test.contacts", "nextBatch" : [ { "_id" : ObjectId("5e8e501e1a32d227f9085857"), "zipcode" : "220000" } ], "partialResultsReturned" : true, "postBatchResumeToken": "< Resume Token >" }, "ok" : 1, "operationTime" : Timestamp(1586385239, 2), "$clusterTime" : { "clusterTime" : Timestamp(1586385239, 2), "signature" : { "hash" : BinData(0,"lLjejeW6AQGReR9x1PD8xU+tP+A="), "keyId" : Long("6813467763969884181") } } }
フィールド | 説明 |
|---|---|
| カーソル ID やドキュメントの クエリされたシャードが使用できないために、
|
| コマンドが成功( |
これらのフィールドに加えて、db.runCommand() 応答にはレプリカセットとシャーディングされたクラスターに関する次の情報が含まれています。
$clusterTimeoperationTime
詳細については、db.runCommand() レスポンスを参照してください。
動作
アクセス制御
認証が有効になっている場合は、作成したカーソルに対してのみ getMore を実行できます。
セッション
セッション内で作成されたカーソルの場合、セッション外で getMore を呼び出すことはできません。
セッション外で作成されたカーソルの場合、セッション内で getMore を呼び出すことはできません。
トランザクション
マルチドキュメントトランザクションの場合は次のとおりです。
Errors
MongoDB 8.2以降では、カーソル識別子は、指定されたcollectionで操作するカーソルの名前と一致する必要があります。一致するカーソルが存在しない場合、getMoreはエラーを返します。
低速クエリ
MongoDB 5.1 以降、getMore コマンドが スロー クエリ としてログに記録されると、queryHash フィールドと planCacheKey フィールドが スロー クエリ ログ メッセージ と プロファイラー ログ メッセージ に追加されます。
MongoDB 8.0 以降では、既存の queryHashフィールドはplanCacheShapeHash という名前の新しいフィールドに重複します。 以前のバージョンのMongoDBを使用している場合は、queryHashフィールドのみが表示されます。 今後のMongoDBバージョンでは、非推奨の queryHashフィールドが排除されます。代わりに planCacheShapeHashフィールドを使用する必要があります。