Códigos operacionais legados
Esta página descreve os opcodes legados que não são mais suportados pelo MongoDB. Esses opcodes legados são:
Obsoleto a partir do MongoDB 5.0.
Não suportado a partir do MongoDB 5.1.
A partir de MongoDB 5.1, OP_MSG e OP_COMPRESSED são os únicos opcodes suportados a enviar pedidos para um servidor MongoDB .
OP_DELETE
A mensagem OP_DELETE é usada para remover um ou mais documentos de uma coleção. O formato da mensagem 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. }
Campo | Descrição |
---|---|
| Cabeçalho da mensagem. Consulte Cabeçalho de mensagem padrão. |
| Valor total de 0. Reservado para uso futuro. |
| O nome completo da coleção, especificamente seu namespace. O namespace é a concatenação do nome do banco de dados com o nome da coleção, utilizando um |
| Valores de bits para a operação: Os valores de bit correspondem ao seguinte:
|
| Documento JSON que representa a query usada para selecionar os documentos a serem removidos. O seletor contém um ou mais elementos, todos os quais devem corresponder para que um documento seja removido da coleção. |
Não há resposta a uma mensagem OP_DELETE.
OP_GET_MORE
A mensagem OP_GET_MORE é usada para executar query no banco de dados para documentos em uma coleção. O formato da mensagem 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 }
Campo | Descrição |
---|---|
| Cabeçalho da mensagem. Consulte Cabeçalho de mensagem padrão. |
| Valor total de 0. Reservado para uso futuro. |
| O nome completo da coleção, especificamente seu namespace. O namespace é a concatenação do nome do banco de dados com o nome da coleção, utilizando um |
| Limita o número de documentos na primeira mensagem OP_REPLY à query. No entanto, o banco de dados de dados ainda estabelecerá um cursor e retornará o Se
|
| Identificador do cursor que veio em OP_REPLY. Este deve ser o valor que veio do banco de banco de dados. |
O banco de dados de dados responderá a uma mensagem OP_GET_MORE com uma mensagemOP_REPLY.
OP_INSERT
A mensagem OP_INSERT é usada para inserir um ou mais documentos em uma coleção. O formato da mensagem 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 }
Campo | Descrição |
---|---|
| Cabeçalho da mensagem. Consulte Cabeçalho de mensagem padrão. |
| Valores de bits para a operação: Os valores de bit correspondem ao seguinte:
|
| O nome completo da coleção, especificamente seu namespace. O namespace é a concatenação do nome do banco de dados com o nome da coleção, utilizando um |
| Um ou mais documentos para inserir na coleção. Se houver mais de um, eles serão gravados no soquete em sequência, um após o outro. |
Não há resposta a uma mensagem OP_INSERT.
OP_KILL_CURSORS
A mensagem OP_KILL_CURSORS é usada para fechar um cursor ativo no banco de dados. Isso é necessário para garantir que os recursos do banco de dados sejam recuperados no final da query. O formato da mensagem 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 }
Campo | Descrição |
---|---|
| Cabeçalho da mensagem. Consulte Cabeçalho de mensagem padrão. |
| Valor total de 0. Reservado para uso futuro. |
| O número de ID de cursor que estão na mensagem. |
| "Array" de IDs de cursor a serem fechadas. Se houver mais de um, eles serão gravados no soquete em sequência, um após o outro. |
Se um cursor for lido até esgotar (leia até OP_QUERY ou OP_GET_MORE retornar zero para o ID do cursor), não será necessário matar o cursor.
OP_QUERY
A mensagem OP_QUERY é usada para executar query do banco de dados para documentos em uma coleção. O formato da mensagem 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. }
Campo | Descrição | |
---|---|---|
| Cabeçalho da mensagem. Consulte Cabeçalho de mensagem padrão. | |
| Valores de bits para a operação: Os valores de bit correspondem ao seguinte:
| |
| O nome completo da coleção, especificamente seu namespace. O namespace é a concatenação do nome do banco de dados com o nome da coleção, utilizando um | |
| Define o número de documentos a serem omitidos, começando pelo primeiro documento no conjunto de dados resultante, ao retornar o resultado da query. | |
| Limita o número de documentos na primeira mensagem OP_REPLY à query. No entanto, o banco de dados de dados ainda estabelecerá um cursor e retornará o Se
| |
| Documento JSON que representa a query. A query contém um ou mais elementos, todos os quais devem corresponder para que um documento seja incluído no conjunto de resultados. Os possíveis elementos incluem | |
| Opcional. Documento JSON que limita os campos nos documentos devolvidos. O
|
O banco de dados responderá a uma mensagem OP_QUERY com uma mensagem OP_REPLY.
Observação
O MongoDB 5.1 remove o suporte para OP_QUERY
operações de localização e comandos OP_QUERY
. Como uma exceção, o OP_QUERY
ainda é suportado para executar os comandos hello
e isMaster
como parte do handshake de conexão.
OP_REPLY
A mensagem OP_REPLY
é enviada pelo banco de dados em resposta a uma mensagem OP_QUERY ou OP_GET_MORE. O formato de uma mensagem 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 }
Campo | Descrição |
---|---|
| Cabeçalho da mensagem. Consulte Cabeçalho de mensagem padrão. |
| Valores de bits para a operação: Os valores de bit correspondem ao seguinte:
|
| O |
| Posição inicial no cursor. |
| Número de documentos na resposta. |
| Documentos devolvidos. |
OP_UPDATE
A mensagem OP_UPDATE é usada para atualizar um documento em uma coleção. O formato de uma mensagem OP_UPDATE é o seguinte:
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 }
Campo | Descrição |
---|---|
| Cabeçalho da mensagem. Consulte Cabeçalho de mensagem padrão. |
| Valor total de 0. Reservado para uso futuro. |
| O nome completo da coleção, especificamente seu namespace. O namespace é a concatenação do nome do banco de dados com o nome da coleção, utilizando um |
| Valores de bits para a operação: Os valores de bit correspondem ao seguinte:
|
| Documento JSON que especifica a query para seleção do documento a ser atualizado. |
| Documento JSON que especifica a atualização a ser executada. Para obter informações sobre como especificar atualizações, consulte a documentação das Operações de Atualização. |
Não há resposta a uma mensagem OP_UPDATE.