Documentation ¶
Overview ¶
Package protocol implements reading/writing MongoDB wire protocol messages from/to client/server and converting them into parsed data structures.
The official Go MongoDB driver provides low-level wire message parsing primitives this package is built on top of:
https://pkg.go.dev/go.mongodb.org/mongo-driver/x/mongo/driver/wiremessage
MongoDB wire protocol documentation:
https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/
We implement a subset of protocol messages: OP_MSG, OP_QUERY and OP_REPLY.
Package layout:
message.go: Defines wire message common interface and provides methods for reading wire messages from client/server connections.
opmsg.go: Contains marshal/unmarshal for OP_MSG - extensible message that MongoDB 3.6 and higher use for all commands.
opquery.go: Contains marshal/unmarshal for OP_QUERY - a legacy command, still used for some operations (e.g. first "isMaster" handshake message).
opreply.go: Contains marshal/unmarshal for OP_REPLY - a reply message sent by a database to an OP_QUERY command.
errors.go: Provides methods for sending errors in wire message to client connections.
Index ¶
- func ReadMsgSectionDocumentSequence(src []byte) (identifier string, docs []bsoncore.Document, rem []byte, ok bool)
- func ReadReplyDocuments(src []byte) (docs []bsoncore.Document, rem []byte, ok bool)
- func ReplyError(clientConn net.Conn, replyTo Message, clientErr error) (err error)
- type Message
- type MessageHeader
- type MessageOpCompressed
- func (m *MessageOpCompressed) GetBytes() []byte
- func (m *MessageOpCompressed) GetCommand() (string, error)
- func (m *MessageOpCompressed) GetDatabase() (string, error)
- func (m *MessageOpCompressed) GetHeader() MessageHeader
- func (m *MessageOpCompressed) GetOriginal() Message
- func (m *MessageOpCompressed) MoreToCome(msg Message) bool
- func (m *MessageOpCompressed) String() string
- func (m *MessageOpCompressed) ToWire(responseTo int32) (dst []byte)
- type MessageOpDelete
- func (m *MessageOpDelete) GetBytes() []byte
- func (m *MessageOpDelete) GetCommand() (string, error)
- func (m *MessageOpDelete) GetDatabase() (string, error)
- func (m *MessageOpDelete) GetHeader() MessageHeader
- func (m *MessageOpDelete) MoreToCome(_ Message) bool
- func (m *MessageOpDelete) String() string
- func (m *MessageOpDelete) ToWire(responseTo int32) (dst []byte)
- type MessageOpGetMore
- func (m *MessageOpGetMore) GetBytes() []byte
- func (m *MessageOpGetMore) GetCommand() (string, error)
- func (m *MessageOpGetMore) GetDatabase() (string, error)
- func (m *MessageOpGetMore) GetHeader() MessageHeader
- func (m *MessageOpGetMore) MoreToCome(_ Message) bool
- func (m *MessageOpGetMore) String() string
- func (m *MessageOpGetMore) ToWire(responseTo int32) (dst []byte)
- type MessageOpInsert
- func (m *MessageOpInsert) GetBytes() []byte
- func (m *MessageOpInsert) GetCommand() (string, error)
- func (m *MessageOpInsert) GetDatabase() (string, error)
- func (m *MessageOpInsert) GetHeader() MessageHeader
- func (m *MessageOpInsert) MoreToCome(_ Message) bool
- func (m *MessageOpInsert) String() string
- func (m *MessageOpInsert) ToWire(responseTo int32) (dst []byte)
- type MessageOpKillCursors
- func (m *MessageOpKillCursors) GetBytes() []byte
- func (m *MessageOpKillCursors) GetCommand() (string, error)
- func (m *MessageOpKillCursors) GetDatabase() (string, error)
- func (m *MessageOpKillCursors) GetHeader() MessageHeader
- func (m *MessageOpKillCursors) MoreToCome(_ Message) bool
- func (m *MessageOpKillCursors) String() string
- func (m *MessageOpKillCursors) ToWire(responseTo int32) (dst []byte)
- type MessageOpMsg
- func (m *MessageOpMsg) GetBytes() []byte
- func (m *MessageOpMsg) GetCommand() (string, error)
- func (m *MessageOpMsg) GetDatabase() (string, error)
- func (m *MessageOpMsg) GetHeader() MessageHeader
- func (m *MessageOpMsg) MoreToCome(_ Message) bool
- func (m *MessageOpMsg) String() string
- func (m *MessageOpMsg) ToWire(responseTo int32) (dst []byte)
- type MessageOpQuery
- func (m *MessageOpQuery) GetBytes() []byte
- func (m *MessageOpQuery) GetCommand() (string, error)
- func (m *MessageOpQuery) GetDatabase() (string, error)
- func (m *MessageOpQuery) GetHeader() MessageHeader
- func (m *MessageOpQuery) MoreToCome(_ Message) bool
- func (m *MessageOpQuery) String() string
- func (m *MessageOpQuery) ToWire(responseTo int32) (dst []byte)
- type MessageOpReply
- func (m *MessageOpReply) GetBytes() []byte
- func (m *MessageOpReply) GetCommand() (string, error)
- func (m *MessageOpReply) GetDatabase() (string, error)
- func (m *MessageOpReply) GetDocumentsAsStrings() (documents []string)
- func (m *MessageOpReply) GetHeader() MessageHeader
- func (m *MessageOpReply) MoreToCome(msg Message) bool
- func (m *MessageOpReply) String() string
- func (m *MessageOpReply) ToWire(responseTo int32) (dst []byte)
- type MessageOpUpdate
- func (m *MessageOpUpdate) GetBytes() []byte
- func (m *MessageOpUpdate) GetCommand() (string, error)
- func (m *MessageOpUpdate) GetDatabase() (string, error)
- func (m *MessageOpUpdate) GetHeader() MessageHeader
- func (m *MessageOpUpdate) MoreToCome(_ Message) bool
- func (m *MessageOpUpdate) String() string
- func (m *MessageOpUpdate) ToWire(responseTo int32) (dst []byte)
- type Section
- type SectionBody
- type SectionDocumentSequence
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ReadMsgSectionDocumentSequence ¶
func ReadMsgSectionDocumentSequence(src []byte) (identifier string, docs []bsoncore.Document, rem []byte, ok bool)
ReadMsgSectionDocumentSequence reads multiple documents from the source.
This function works in the same way as wiremessage.ReadMsgSectionDocumentSequence except that it validate the rem index before reading the document.
func ReadReplyDocuments ¶
ReadReplyDocuments reads multiple documents from the source.
This function works in the same way as wiremessage.ReadReplyDocuments except, it can handle document of size 0. When a document of size 0 is passed to wiremessage.ReadReplyDocuments, it will keep creating empty documents until it uses all system memory/application crash.
Types ¶
type Message ¶
type Message interface { // GetHeader returns the wire message header. GetHeader() MessageHeader // GetBytes returns raw wire message bytes read from the connection. GetBytes() []byte // ToWire returns the message as wire bytes format. ToWire(responseTo int32) []byte // MoreToCome is whether sender will send another message right after this one. MoreToCome(message Message) bool // GetDatabase returns the message's database (for client messages). GetDatabase() (string, error) // GetCommand returns the message's command (for client messages). GetCommand() (string, error) // Stringer dumps message in the readable format for logs and audit. fmt.Stringer }
Message defines common interface for MongoDB wire protocol messages.
func ReadMessage ¶
ReadMessage reads the next MongoDB wire protocol message from the reader.
func ReadServerMessage ¶
ReadServerMessage reads wire protocol message from the MongoDB server connection.
type MessageHeader ¶
type MessageHeader struct { MessageLength int32 RequestID int32 ResponseTo int32 OpCode wiremessage.OpCode // contains filtered or unexported fields }
MessageHeader represents parsed MongoDB wire protocol message header.
https://docs.mongodb.com/master/reference/mongodb-wire-protocol/#standard-message-header
type MessageOpCompressed ¶
type MessageOpCompressed struct { Header MessageHeader OriginalOpcode wiremessage.OpCode UncompressedSize int32 CompressorID wiremessage.CompressorID CompressedMessage []byte // contains filtered or unexported fields }
MessageOpCompressed represents parsed OP_COMPRESSED wire message.
https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/#op_compressed
struct { MsgHeader header; // standard message header int32 originalOpcode; // value of wrapped opcode int32 uncompressedSize; // size of deflated compressedMessage, excluding MsgHeader uint8 compressorId; // ID of compressor that compressed message char *compressedMessage; // opcode itself, excluding MsgHeader }
func (*MessageOpCompressed) GetBytes ¶
func (m *MessageOpCompressed) GetBytes() []byte
GetBytes returns the message raw bytes read from the connection.
func (*MessageOpCompressed) GetCommand ¶
func (m *MessageOpCompressed) GetCommand() (string, error)
GetCommand returns the message's command.
func (*MessageOpCompressed) GetDatabase ¶
func (m *MessageOpCompressed) GetDatabase() (string, error)
GetDatabase returns database for the wrapped message.
func (*MessageOpCompressed) GetHeader ¶
func (m *MessageOpCompressed) GetHeader() MessageHeader
GetHeader returns the wire message header.
func (*MessageOpCompressed) GetOriginal ¶
func (m *MessageOpCompressed) GetOriginal() Message
GetOriginal returns original decompressed message.
func (*MessageOpCompressed) MoreToCome ¶
func (m *MessageOpCompressed) MoreToCome(msg Message) bool
MoreToCome is whether sender will send another message right after this one.
func (*MessageOpCompressed) String ¶
func (m *MessageOpCompressed) String() string
String returns the message string representation.
func (*MessageOpCompressed) ToWire ¶
func (m *MessageOpCompressed) ToWire(responseTo int32) (dst []byte)
ToWire converts this message to wire protocol message bytes.
type MessageOpDelete ¶
type MessageOpDelete struct { Header MessageHeader Zero int32 FullCollectionName string Flags int32 Selector bsoncore.Document // contains filtered or unexported fields }
MessageOpDelete represents parsed OP_DELETE wire message.
https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/#op_delete
struct { MsgHeader header; // standard message header int32 ZERO; // 0 - reserved for future use cstring fullCollectionName; // "dbname.collectionname" int32 flags; // bit vector - see below for details. document selector; // query object. See below for details. }
OP_DELETE is deprecated starting MongoDB 5.0 in favor of OP_MSG.
func (*MessageOpDelete) GetBytes ¶
func (m *MessageOpDelete) GetBytes() []byte
GetBytes returns the message raw bytes read from the connection.
func (*MessageOpDelete) GetCommand ¶
func (m *MessageOpDelete) GetCommand() (string, error)
GetCommand returns the message's command.
func (*MessageOpDelete) GetDatabase ¶
func (m *MessageOpDelete) GetDatabase() (string, error)
GetDatabase returns the command's database.
func (*MessageOpDelete) GetHeader ¶
func (m *MessageOpDelete) GetHeader() MessageHeader
GetHeader returns the wire message header.
func (*MessageOpDelete) MoreToCome ¶
func (m *MessageOpDelete) MoreToCome(_ Message) bool
MoreToCome is whether sender will send another message right after this one.
func (*MessageOpDelete) String ¶
func (m *MessageOpDelete) String() string
String returns the message string representation.
func (*MessageOpDelete) ToWire ¶
func (m *MessageOpDelete) ToWire(responseTo int32) (dst []byte)
ToWire converts this message to wire protocol message bytes.
type MessageOpGetMore ¶
type MessageOpGetMore struct { Header MessageHeader Zero int32 FullCollectionName string NumberToReturn int32 CursorID int64 // contains filtered or unexported fields }
MessageOpGetMore represents parsed OP_GET_MORE wire message.
https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/#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 }
OP_GET_MORE is deprecated starting MongoDB 5.0 in favor of OP_MSG.
func (*MessageOpGetMore) GetBytes ¶
func (m *MessageOpGetMore) GetBytes() []byte
GetBytes returns the message raw bytes read from the connection.
func (*MessageOpGetMore) GetCommand ¶
func (m *MessageOpGetMore) GetCommand() (string, error)
GetCommand returns the message's command.
func (*MessageOpGetMore) GetDatabase ¶
func (m *MessageOpGetMore) GetDatabase() (string, error)
GetDatabase returns the command's database.
func (*MessageOpGetMore) GetHeader ¶
func (m *MessageOpGetMore) GetHeader() MessageHeader
GetHeader returns the wire message header.
func (*MessageOpGetMore) MoreToCome ¶
func (m *MessageOpGetMore) MoreToCome(_ Message) bool
MoreToCome is whether sender will send another message right after this one.
func (*MessageOpGetMore) String ¶
func (m *MessageOpGetMore) String() string
String returns the message string representation.
func (*MessageOpGetMore) ToWire ¶
func (m *MessageOpGetMore) ToWire(responseTo int32) (dst []byte)
ToWire converts this message to wire protocol message bytes.
type MessageOpInsert ¶
type MessageOpInsert struct { Header MessageHeader Flags int32 FullCollectionName string Documents []bsoncore.Document // contains filtered or unexported fields }
MessageOpInsert represents parsed OP_INSERT wire message.
https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/#op_insert
struct { MsgHeader header; // standard message header int32 flags; // bit vector - see below cstring fullCollectionName; // "dbname.collectionname" document* documents; // one or more documents to insert into the collection }
OP_INSERT is deprecated starting MongoDB 5.0 in favor of OP_MSG.
func (*MessageOpInsert) GetBytes ¶
func (m *MessageOpInsert) GetBytes() []byte
GetBytes returns the message raw bytes read from the connection.
func (*MessageOpInsert) GetCommand ¶
func (m *MessageOpInsert) GetCommand() (string, error)
GetCommand returns the message's command.
func (*MessageOpInsert) GetDatabase ¶
func (m *MessageOpInsert) GetDatabase() (string, error)
GetDatabase returns the command's database.
func (*MessageOpInsert) GetHeader ¶
func (m *MessageOpInsert) GetHeader() MessageHeader
GetHeader returns the wire message header.
func (*MessageOpInsert) MoreToCome ¶
func (m *MessageOpInsert) MoreToCome(_ Message) bool
MoreToCome is whether sender will send another message right after this one.
func (*MessageOpInsert) String ¶
func (m *MessageOpInsert) String() string
String returns the message string representation.
func (*MessageOpInsert) ToWire ¶
func (m *MessageOpInsert) ToWire(responseTo int32) (dst []byte)
ToWire converts this message to wire protocol message bytes.
type MessageOpKillCursors ¶
type MessageOpKillCursors struct { Header MessageHeader Zero int32 NumberOfCursorIDs int32 CursorIDs []int64 // contains filtered or unexported fields }
MessageOpKillCursors represents parsed OP_KILL_CURSORS wire message.
https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/#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 }
OP_KILL_CURSORS is deprecated starting MongoDB 5.0 in favor of OP_MSG.
func (*MessageOpKillCursors) GetBytes ¶
func (m *MessageOpKillCursors) GetBytes() []byte
GetBytes returns the message raw bytes read from the connection.
func (*MessageOpKillCursors) GetCommand ¶
func (m *MessageOpKillCursors) GetCommand() (string, error)
GetCommand returns the message's command.
func (*MessageOpKillCursors) GetDatabase ¶
func (m *MessageOpKillCursors) GetDatabase() (string, error)
GetDatabase returns the command's database.
func (*MessageOpKillCursors) GetHeader ¶
func (m *MessageOpKillCursors) GetHeader() MessageHeader
GetHeader returns the wire message header.
func (*MessageOpKillCursors) MoreToCome ¶
func (m *MessageOpKillCursors) MoreToCome(_ Message) bool
MoreToCome is whether sender will send another message right after this one.
func (*MessageOpKillCursors) String ¶
func (m *MessageOpKillCursors) String() string
String returns the message string representation.
func (*MessageOpKillCursors) ToWire ¶
func (m *MessageOpKillCursors) ToWire(responseTo int32) (dst []byte)
ToWire converts this message to wire protocol message bytes.
type MessageOpMsg ¶
type MessageOpMsg struct { Header MessageHeader Flags wiremessage.MsgFlag BodySection SectionBody DocumentSequenceSections []SectionDocumentSequence Checksum uint32 // contains filtered or unexported fields }
MessageOpMsg represents parsed OP_MSG wire message.
https://docs.mongodb.com/master/reference/mongodb-wire-protocol/#op-msg
OP_MSG { MsgHeader header; // standard message header uint32 flagBits; // message flags Sections[] sections; // data sections optional<uint32> checksum; // optional CRC-32C checksum }
func MakeOpMsg ¶
func MakeOpMsg(document bsoncore.Document) *MessageOpMsg
MakeOpMsg is a shorthand to create OP_MSG message from a single document.
func (*MessageOpMsg) GetBytes ¶
func (m *MessageOpMsg) GetBytes() []byte
GetBytes returns the message raw bytes read from the connection.
func (*MessageOpMsg) GetCommand ¶
func (m *MessageOpMsg) GetCommand() (string, error)
GetCommand returns the message's command.
func (*MessageOpMsg) GetDatabase ¶
func (m *MessageOpMsg) GetDatabase() (string, error)
GetDatabase returns the message's database.
func (*MessageOpMsg) GetHeader ¶
func (m *MessageOpMsg) GetHeader() MessageHeader
GetHeader returns the wire message header.
func (*MessageOpMsg) MoreToCome ¶
func (m *MessageOpMsg) MoreToCome(_ Message) bool
MoreToCome is whether sender will send another message right after this one.
func (*MessageOpMsg) String ¶
func (m *MessageOpMsg) String() string
String returns the message string representation.
func (*MessageOpMsg) ToWire ¶
func (m *MessageOpMsg) ToWire(responseTo int32) (dst []byte)
ToWire converts this message to wire protocol message bytes.
https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/#op_msg
type MessageOpQuery ¶
type MessageOpQuery struct { Header MessageHeader Flags wiremessage.QueryFlag FullCollectionName string NumberToSkip int32 NumberToReturn int32 Query bsoncore.Document ReturnFieldsSelector bsoncore.Document // contains filtered or unexported fields }
MessageOpQuery represents parsed OP_QUERY wire message.
https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/#op_query
OP_QUERY is generally deprecated by MongoDB in favor of extensible OP_MSG message but it still seems to be used by Mongo clients and drivers during initial connection establishment.
func (*MessageOpQuery) GetBytes ¶
func (m *MessageOpQuery) GetBytes() []byte
GetBytes returns the message raw bytes read from the connection.
func (*MessageOpQuery) GetCommand ¶
func (m *MessageOpQuery) GetCommand() (string, error)
GetCommand returns the message's command.
func (*MessageOpQuery) GetDatabase ¶
func (m *MessageOpQuery) GetDatabase() (string, error)
GetDatabase returns the command's database.
func (*MessageOpQuery) GetHeader ¶
func (m *MessageOpQuery) GetHeader() MessageHeader
GetHeader returns the wire message header.
func (*MessageOpQuery) MoreToCome ¶
func (m *MessageOpQuery) MoreToCome(_ Message) bool
MoreToCome is whether sender will send another message right after this one.
func (*MessageOpQuery) String ¶
func (m *MessageOpQuery) String() string
String returns the message string representation.
func (*MessageOpQuery) ToWire ¶
func (m *MessageOpQuery) ToWire(responseTo int32) (dst []byte)
ToWire converts this message to wire protocol message bytes.
https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/#op_query
type MessageOpReply ¶
type MessageOpReply struct { Header MessageHeader Flags wiremessage.ReplyFlag CursorID int64 StartingFrom int32 NumberReturned int32 Documents []bsoncore.Document // contains filtered or unexported fields }
MessageOpReply represents parsed OP_REPLY wire message.
https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/#op_reply
func MakeOpReply ¶
func MakeOpReply(document bsoncore.Document) *MessageOpReply
MakeOpReply is a shorthand to create OP_REPLY message from a single document.
func MakeOpReplyWithFlags ¶
func MakeOpReplyWithFlags(document bsoncore.Document, flags wiremessage.ReplyFlag) *MessageOpReply
MakeOpReplyWithFlags is a shorthand to create OP_REPLY message from a single document with provided flags.
func (*MessageOpReply) GetBytes ¶
func (m *MessageOpReply) GetBytes() []byte
GetBytes returns the message raw bytes read from the connection.
func (*MessageOpReply) GetCommand ¶
func (m *MessageOpReply) GetCommand() (string, error)
GetCommand is a no-op for OpReply since this is a server message.
func (*MessageOpReply) GetDatabase ¶
func (m *MessageOpReply) GetDatabase() (string, error)
GetDatabase is a no-op for OpReply since this is a server message.
func (*MessageOpReply) GetDocumentsAsStrings ¶
func (m *MessageOpReply) GetDocumentsAsStrings() (documents []string)
GetDocumentsAsStrings is a convenience method to return all message bson documents converted to their string representations.
func (*MessageOpReply) GetHeader ¶
func (m *MessageOpReply) GetHeader() MessageHeader
GetHeader returns the wire message header.
func (*MessageOpReply) MoreToCome ¶
func (m *MessageOpReply) MoreToCome(msg Message) bool
MoreToCome is whether sender will send another message right after this one.
func (*MessageOpReply) String ¶
func (m *MessageOpReply) String() string
String returns the message string representation.
func (*MessageOpReply) ToWire ¶
func (m *MessageOpReply) ToWire(responseTo int32) (dst []byte)
ToWire converts this message to wire protocol message bytes.
https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/#op_reply
type MessageOpUpdate ¶
type MessageOpUpdate struct { Header MessageHeader Zero int32 FullCollectionName string Flags int32 Selector bsoncore.Document Update bsoncore.Document // contains filtered or unexported fields }
MessageOpUpdate represents parsed OP_UPDATE wire message.
https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/#op_update
struct OP_UPDATE { MsgHeader header; // standard message header int32 ZERO; // 0 - reserved for future use cstring fullCollectionName; // "dbname.collectionname" int32 flags; // bit vector. see below document selector; // the query to select the document document update; // specification of the update to perform }
OP_UPDATE is deprecated starting MongoDB 5.0 in favor of OP_MSG.
func (*MessageOpUpdate) GetBytes ¶
func (m *MessageOpUpdate) GetBytes() []byte
GetBytes returns the message raw bytes read from the connection.
func (*MessageOpUpdate) GetCommand ¶
func (m *MessageOpUpdate) GetCommand() (string, error)
GetCommand returns the message's command.
func (*MessageOpUpdate) GetDatabase ¶
func (m *MessageOpUpdate) GetDatabase() (string, error)
GetDatabase returns the command's database.
func (*MessageOpUpdate) GetHeader ¶
func (m *MessageOpUpdate) GetHeader() MessageHeader
GetHeader returns the wire message header.
func (*MessageOpUpdate) MoreToCome ¶
func (m *MessageOpUpdate) MoreToCome(_ Message) bool
MoreToCome is whether sender will send another message right after this one.
func (*MessageOpUpdate) String ¶
func (m *MessageOpUpdate) String() string
String returns the message string representation.
func (*MessageOpUpdate) ToWire ¶
func (m *MessageOpUpdate) ToWire(responseTo int32) (dst []byte)
ToWire converts this message to wire protocol message bytes.
type Section ¶
type Section interface { GetType() wiremessage.SectionType ToWire() []byte }
Section represents a single OP_MSG wire message section.
https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/#sections
type SectionBody ¶
SectionBody represents OP_MSG Body section that contains a single bson document.
https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/#kind-0--body
func (*SectionBody) GetType ¶
func (s *SectionBody) GetType() wiremessage.SectionType
GetType returns this section type.
func (SectionBody) String ¶
func (s SectionBody) String() string
String returns the section's string representation.
func (*SectionBody) ToWire ¶
func (s *SectionBody) ToWire() (dst []byte)
ToWire encodes this section to wire protocol message bytes.
https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/#kind-0--body
type SectionDocumentSequence ¶
SectionDocumentSequence represents OP_MSG Document Sequence section that contains multiple bson documents.
https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/#kind-1--document-sequence
func (*SectionDocumentSequence) GetType ¶
func (s *SectionDocumentSequence) GetType() wiremessage.SectionType
GetType returns this section type.
func (SectionDocumentSequence) String ¶
func (s SectionDocumentSequence) String() string
String returns the section's string representation.
func (*SectionDocumentSequence) ToWire ¶
func (s *SectionDocumentSequence) ToWire() (dst []byte)
ToWire encodes this section to wire protocol message bytes.
https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/#kind-1--document-sequence