Clase: Mongo::Protocol::Query
- Hereda:
-
Mensaje
- Objeto
- Mensaje
- Mongo::Protocol::Query
- Incluye:
- supervisión::evento::Secure
- Definido en:
- lib/mongo/protocolo/query.rb
Overview
Mensaje de query del protocolo de conexión de MongoDB.
Este es un mensaje de solicitud del cliente que se envía al servidor para recuperar documentos que coincidan con la query proporcionada.
Los usuarios también pueden proporcionar opciones adicionales, como una proyección para seleccionar un subconjunto de los campos, un número para omitir o un límite en el número de documentos devueltos.
Hay diferentes banderas que pueden utilizarse para ajustar los parámetros del cursor o la coherencia e integridad deseadas de los resultados.
Definido bajo Namespace
clase: Convertidor ascendente
Resumen constante
Constantes incluidas de supervisión::evento::Secure
Supervisión::Evento::Seguro::COMANDOS_REDACTADOS
Constantes heredadas de Mensaje
Message::BATCH_SIZE, Message::colección, Message::LIMIT, Message::MAX_MESSAGE_SIZE, Message::ORDERED, Message::Q
Constantes incluidas de Serializadores
Serializers::HEADER_PACK, Serializers::INT32_PACK, Serializers::INT64_PACK, Serializers::NULL, Serializers::ZERO
Resumen del atributo de la instancia
Atributos heredados de Mensaje
Resumen del método de instancia colapsar
-
#inicializar(base de datos, colección, selector, opciones = {}) ⇒ query
constructor
Crea un nuevo mensaje de query.
-
#maybe_compress(compressor, zlib_compression_level = nil) ⇒ Message
privado
Comprime el mensaje, si el comando que se envía permite la compresión.
-
#payload ⇒ BSON::documento
Devuelve la carga útil del evento para su supervisión.
-
#¿respondible? ⇒ verdadero
Los mensajes de query requieren respuestas de la base de datos.
-
#serialize(buffer = BSON::ByteBuffer.new, max_bson_size = nil, bson_overhead = nil) ⇒ BSON::ByteBuffer
Serializa el mensaje en bytes que pueden ser enviados a través del cable.
Métodos incluidos de supervisión::evento::Secure
#compression_allowed?, #redacted, #sensitive?
Métodos heredados de Mensaje
#==, deserializar, deserializar_array, campo_deserializar, deserializar_encabezado, campo, campos, #hash, #quizás_agregar_server_api, #quizás_descifrar, #quizás_cifrar, #quizás_inflar, #número_devuelto, #establecer_id_solicitud
Métodos incluidos de Id
Detalles del Constructor
#initialize(database, collection, selector, options = {}) ⇒ query
Crea un nuevo mensaje de query
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# Archivo 'lib/mongo/protocolo/query.rb', línea 62 def inicializar(database, Colección, selector, = {}) @database = database @namespace = "#{base de datos}.#{colección}" propagar ArgumentError, 'El selector no puede estar vacío' si selector.nil? @selector = selector @options = @proyecto = [Proyecto] @limit = determine_limit @skip = [Omitir] || 0 @flags = [:flags] || [] @upconverter = Convertidor ascendente.Nuevo( Colección, BSON::Documento.Nuevo(selector), BSON::Documento.Nuevo(), flags ) super end |
Detalles del método de instancia
#maybe_compress(compressor, zlib_compression_level = nil) ⇒ Mensaje
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Comprima el mensaje si el comando que se envía permite la compresión. En caso contrario, devuelve uno mismo.
122 123 124 |
# Archivo 'lib/mongo/protocolo/query.rb', línea 122 def maybe_compress(compresor, zlib_compression_level = nulo) compress_if_possible(selector.claves.primero, compresor, zlib_compression_level) end |
#carga útil ⇒ BSON::Document
Devuelve la carga útil del evento para su supervisión.
90 91 92 93 94 95 96 97 |
# Archivo 'lib/mongo/protocolo/query.rb', línea 90 def payload BSON::Documento.Nuevo( command_name: convertidor ascendente.command_name, base_de_datos_nombre: @database, comando: convertidor ascendente.Comando, request_id: request_id ) end |
#replyable? ⇒ true
Los mensajes de query requieren respuestas de la base de datos.
107 108 109 |
# Archivo 'lib/mongo/protocolo/query.rb', línea 107 def ¿respondible? true end |
#serializa(buffer = BSON::ByteBuffer.new, max_bson_size = nil, bson_overhead = nil) ⇒ BSON::ByteBuffer
Serializa el mensaje en bytes que pueden ser enviados a través del cable.
132 133 134 135 136 |
# Archivo 'lib/mongo/protocolo/query.rb', línea 132 def serializar(buffer = BSON::ByteBuffer.Nuevo, tamaño_máximo_bson = nulo, bson_overhead = nulo) validate_document_size! (validate_document_size!)(tamaño_máximo_bson) super end |