def reply_bytes(self, request):
        """Take a `Request` and return an OP_MSG message as bytes."""
        flags = struct.pack("<I", self._flags)
        payload_type = struct.pack("<b", 0)
        payload_data = bson.BSON.encode(self.doc)
        data = b''.join([flags, payload_type, payload_data])

        reply_id = random.randint(0, 1000000)
        response_to = request.request_id

        header = struct.pack(
            "<iiii", 16 + len(data), reply_id, response_to, OP_MSG)
        return header + data
Take a `Request` and return an OP_MSG message as bytes.