レガシー命令コード
このページでは、MongoDB でサポートされなくなったレガシー命令コードについて説明します。 これらのレガシー命令コードは次のとおりです。
MongoDB 5.0 以降、非推奨になりました。
MongoDB 5.1 以降ではサポートされていません。
MongoDB 5.1以降では、MongoDB サーバーにリクエストを送信するための命令コードは、 OP_MSGとOP_COMPRESSEDのみです。
OP_DELETE
OP_DELETE メッセージは、コレクションから 1 つ以上のドキュメントを削除するために使用されます。 OP_DELETE メッセージの形式は次のとおりです。
struct { MsgHeader header; // standard message header int32 ZERO; // 0 - reserved for future use cstring fullCollectionName; // "dbname.collectionname" int32 flags; // bit values - see below for details. document selector; // query object. See below for details. }
フィールド | 説明 |
---|---|
header | メッセージ ヘッダー。 標準メッセージ ヘッダー を参照してください。 |
ZERO | 0 の整数値です。将来の使用のために予約されています。 |
fullCollectionName | 完全なコレクション名、具体的にはその名前空間。 名前空間は、データベース名とコレクション名を連結したもので、連結に . を使用します。 たとえば、データベースtest とコレクションcontacts の場合、完全なコレクション名はtest.contacts です。 |
flags | 操作のビット値: ビット値は以下に対応します。
|
selector | 削除するドキュメントを選択するために使用されたクエリを表す BSON document セレクターには 1 つ以上の要素が含まれており、コレクションから削除されるドキュメントはすべて一致する必要があります。 |
OP_DELETE メッセージには応答しません。
OP_GET_MORE
OP_GET_MORE メッセージは、コレクション内のドキュメントをデータベースでクエリするために使用されます。 OP_GET_MORE メッセージの形式は次のとおりです。
struct { MsgHeader header; // standard message header int32 ZERO; // 0 - reserved for future use cstring fullCollectionName; // "dbname.collectionname" int32 numberToReturn; // number of documents to return int64 cursorID; // cursorID from the OP_REPLY }
フィールド | 説明 |
---|---|
header | メッセージ ヘッダー。 標準メッセージ ヘッダー を参照してください。 |
ZERO | 0 の整数値です。将来の使用のために予約されています。 |
fullCollectionName | 完全なコレクション名、具体的にはその名前空間。 名前空間は、データベース名とコレクション名を連結したもので、連結に . を使用します。 たとえば、データベースtest とコレクションcontacts の場合、完全なコレクション名はtest.contacts です。 |
numberToReturn | クエリへの最初の OP_REPlyメッセージのドキュメント数を制限します。 ただし、
|
cursorID | OP_REPlyで取得されたカーソル識別子です。 これは、データベースから取得された値である必要があります。 |
データベースは、OP_REPly メッセージとともにOP_GET_MOREメッセージに応答します。
OP_INSERT
OP_INSERT メッセージは、1 つ以上のドキュメントをコレクションに挿入するために使用されます。 OP_INSERT メッセージの形式は次のとおりです。
struct { MsgHeader header; // standard message header int32 flags; // bit values - see below cstring fullCollectionName; // "dbname.collectionname" document* documents; // one or more documents to insert into the collection }
フィールド | 説明 |
---|---|
header | メッセージ ヘッダー。 標準メッセージ ヘッダー を参照してください。 |
flags | 操作のビット値: ビット値は以下に対応します。
|
fullCollectionName | 完全なコレクション名、具体的にはその名前空間。 名前空間は、データベース名とコレクション名を連結したもので、連結に . を使用します。 たとえば、データベースtest とコレクションcontacts の場合、完全なコレクション名はtest.contacts です。 |
documents | コレクションに挿入する 1 つ以上のドキュメント。 複数ある場合は、順番にソケットに書込まれます。 |
OP_INSERT メッセージには応答しません。
OP_KILL_CURSORS
OP_KILL_CURSORS メッセージは、データベース内のアクティブなカーソルを閉じるために使用されます。 これは、クエリの最後にデータベース リソースが再利用されるようにするために必要です。 OP_KILL_CURSORS メッセージの形式は次のとおりです。
struct { MsgHeader header; // standard message header int32 ZERO; // 0 - reserved for future use int32 numberOfCursorIDs; // number of cursorIDs in message int64* cursorIDs; // sequence of cursorIDs to close }
フィールド | 説明 |
---|---|
header | メッセージ ヘッダー。 標準メッセージ ヘッダー を参照してください。 |
ZERO | 0 の整数値です。将来の使用のために予約されています。 |
numberOfCursorIDs | メッセージにあるカーソル ID の数。 |
cursorIDs | 閉じるカーソル ID の「配列」。 複数ある場合は、順番にソケットに書込まれます。 |
カーソルが使い果たされるまで読み取られる( OP_QUERYまたはOP_GET_MOREがカーソル ID に対して 0 を返すまで読み取る)場合、カーソルを強制終了する必要はありません。
OP_QUERY
OP_QUERY メッセージは、コレクション内のドキュメントをデータベースにクエリするために使用されます。 OP_QUERY メッセージの形式は次のとおりです。
struct OP_QUERY { MsgHeader header; // standard message header int32 flags; // bit values of query options. See below for details. cstring fullCollectionName ; // "dbname.collectionname" int32 numberToSkip; // number of documents to skip int32 numberToReturn; // number of documents to return // in the first OP_REPLY batch document query; // query object. See below for details. [ document returnFieldsSelector; ] // Optional. Selector indicating the fields // to return. See below for details. }
フィールド | 説明 | |
---|---|---|
header | メッセージ ヘッダー。 標準メッセージ ヘッダー を参照してください。 | |
flags | 操作のビット値: ビット値は以下に対応します。
| |
fullCollectionName | 完全なコレクション名、具体的にはその名前空間。 名前空間は、データベース名とコレクション名を連結したもので、連結に . を使用します。 たとえば、データベースtest とコレクションcontacts の場合、完全なコレクション名はtest.contacts です。 | |
numberToSkip | クエリの結果を返すときに、省略するドキュメントの数を設定します - 結果データセットの最初のドキュメントから。 | |
numberToReturn | クエリへの最初のOP_REPlyメッセージのドキュメント数を制限します。 ただし、
| |
query | クエリを表す BSON ドキュメント。 クエリには 1 つ以上の要素が含まれており、結果セットに含めるドキュメントはすべて一致する必要があります。 指定可能な要素には、 $query 、 $orderby 、 $hint 、 $explain などがあります。 | |
returnFieldsSelector | 任意。 返されるドキュメントのフィールドを制限する BSON ドキュメント。
|
データベースは、OP_REPly メッセージを含むOP_QUERYメッセージに応答します。
注意
MongoDB 5.1 では、OP_QUERY
検索操作と OP_QUERY
コマンドの両方のサポートが削除されました。例外として、OP_QUERY
は、接続ハンドシェイクの一部として hello
コマンドと isMaster
コマンドの実行は引き続きサポートされます。
OP_REPly
OP_REPLY
メッセージは、 OP_QUERYまたはOP_GET_MOREメッセージに応答してデータベースによって送信されます。 OP_REPly メッセージの形式は次のとおりです。
struct { MsgHeader header; // standard message header int32 responseFlags; // bit values - see details below int64 cursorID; // cursor ID if client needs to do get more's int32 startingFrom; // where in the cursor this reply is starting int32 numberReturned; // number of documents in the reply document* documents; // documents }
フィールド | 説明 |
---|---|
header | メッセージ ヘッダー。 標準メッセージ ヘッダー を参照してください。 |
responseFlags | 操作のビット値: ビット値は以下に対応します。
|
cursorID | この OP_REPLY が構成要素である cursorID 。 クエリの結果セットが 1 つの OP_REPly メッセージに収まる場合、 cursorID は0になります。 このcursorID は、より多くのデータを取得するために使用されるOP_GET_MOREメッセージで使用する必要があります。また、 OP_KILL_CURSORSメッセージが不要になった場合は、クライアントによって閉じられる必要があります。 |
startingFrom | カーソル内の開始位置。 |
numberReturned | 応答内のドキュメントの数。 |
documents | 返されたドキュメント。 |
OP_UPDATE
OP_UPDATE メッセージは、コレクション内のドキュメントを更新するために使用されます。 OP_UPDATE メッセージの形式は次のとおりです。
struct OP_UPDATE { MsgHeader header; // standard message header int32 ZERO; // 0 - reserved for future use cstring fullCollectionName; // "dbname.collectionname" int32 flags; // bit values. see below document selector; // the query to select the document document update; // specification of the update to perform }
フィールド | 説明 |
---|---|
header | メッセージ ヘッダー。 標準メッセージ ヘッダー を参照してください。 |
ZERO | 0 の整数値です。将来の使用のために予約されています。 |
fullCollectionName | 完全なコレクション名、具体的にはその名前空間。 名前空間は、データベース名とコレクション名を連結したもので、連結に . を使用します。 たとえば、データベースtest とコレクションcontacts の場合、完全なコレクション名はtest.contacts です。 |
flags | 操作のビット値: ビット値は以下に対応します。
|
selector | 更新するドキュメントの選択に対するクエリを指定する BSON ドキュメント。 |
update | 実行される更新を指定する BSON ドキュメント。 更新の指定の詳細については、更新操作のドキュメントを参照してください。 |
OP_UPDATE メッセージには応答しません。