레거시 옵코드
이 페이지에서는 MongoDB에서 더 이상 지원하지 않는 레거시 옵코드에 대해 설명합니다. 이러한 레거시 옵코드는 다음과 같습니다.
MongoDB 5.0부터 더 이상 사용되지 않습니다.
MongoDB 5.1부터 지원되지 않습니다.
MongoDB 5.1 부터 OP_MSG 및 OP_COMPRESSED 가 MongoDB 서버 에 요청을 전송하는 데 지원되는 유일한 옵코드입니다.
OP_DELETE
OP_DELETE 메시지는 컬렉션에서 하나 이상의 문서를 제거하는 데 사용됩니다. 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 문서입니다. 선택기에는 하나 이상의 요소가 포함되며 컬렉션에서 문서를 제거하려면 모든 요소가 일치해야 합니다. |
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_GET_MORE 메시지에 OP_REPLY 메시지로 응답합니다.
OP_INSERT
OP_INSERT 메시지는 하나 이상의 문서를 컬렉션에 삽입하는 데 사용됩니다. 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 | 컬렉션에 삽입할 하나 이상의 문서입니다. 둘 이상이 있는 경우 순서대로 소켓에 차례로 기록됩니다. |
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 문서입니다. 쿼리에는 하나 이상의 요소가 포함되며, 결과 세트에 문서를 포함하려면 모든 요소가 일치해야 합니다. 가능한 요소에는 $query , $orderby , $hint 및 $explain 이 있습니다. | |
returnFieldsSelector | 선택 사항입니다. 반환된 문서의 필드를 제한하는 BSON 문서입니다.
|
데이터베이스는 OP_QUERY 메시지에 OP_REPLY 메시지로 응답합니다.
참고
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 입니다. 쿼리 결과 세트가 하나의 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 메시지에 대한 응답이 없습니다.