Clase: Mongo::Protocolo::Consulta
- Hereda:
-
Mensaje
- Objeto
- Mensaje
- Mongo::Protocol::Query
- Incluye:
- supervisión::evento::Secure
- Definido en:
- lib/mongo/protocolo/query.rb
Overview
Mensaje de consulta del protocolo MongoDB Wire.
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
Clases: Convertidor ascendente
Resumen constante
Constantes incluidas desde Monitoring::Event::Secure
Monitoreo::Evento::Seguro::COMANDOS REDACTADOS
Constantes heredadas de Message
Message::BATCH_SIZE, Message::colección, Message::LIMIT, Message::MAX_MESSAGE_SIZE, Message::ORDERED, Message::Q
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.
-
#perhaps_compress(compresor, zlib_compression_level = nil) ⇒ Mensaje
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 consulta
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# Archivo 'lib/mongo/protocol/query.rb', línea 64 def inicializar(database, Colección, selector, = {}) @database = database @namespace = "#{base de datos}.#{colección}" si selector.nil? propagar ArgumentError, 'Elselector no puede ser nulo' end @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 forma parte de una API privada. Debe evitarlo 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.
125 126 127 |
# Archivo 'lib/mongo/protocol/query.rb', línea 125 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.
93 94 95 96 97 98 99 100 |
# Archivo 'lib/mongo/protocol/query.rb', línea 93 def payload BSON::Documento.Nuevo( command_name: convertidor ascendente.nombre_del_comando, base_de_datos_nombre: @database, comando: convertidor ascendente.Comando, request_id: id de solicitud ) end |
#replyable? ⇒ true
Los mensajes de query requieren respuestas de la base de datos.
110 111 112 |
# Archivo 'lib/mongo/protocol/query.rb', línea 110 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.
135 136 137 138 139 |
# Archivo 'lib/mongo/protocol/query.rb', línea 135 def serializar(buffer = BSON::ByteBuffer.Nuevo, tamaño máximo de bson = nulo, bson_overhead = nulo) validate_document_size! (validate_document_size!)(tamaño máximo de bson) super end |