Class: Mongo::Protocol::Query
- Defined in:
- lib/mongo/protocol/query.rb
Overview
MongoDB Wire protocol Query message.
This is a client request message that is sent to the server in order to retrieve documents matching provided query.
Users may also provide additional options such as a projection, to select a subset of the fields, a number to skip or a limit on the number of returned documents.
There are a variety of flags that can be used to adjust cursor parameters or the desired consistancy and integrity the results.
Defined Under Namespace
Classes: Upconverter
Constant Summary
Constants inherited from Message
Message::BATCH_SIZE, Message::COLLECTION, Message::LIMIT, Message::MAX_MESSAGE_SIZE, Message::ORDERED, Message::Q
Instance Attribute Summary
Attributes inherited from Message
Instance Method Summary collapse
-
#initialize(database, collection, selector, options = {}) ⇒ Query
constructor
Creates a new Query message.
-
#payload ⇒ Hash
Return the event payload for monitoring.
-
#replyable? ⇒ true
Query messages require replies from the database.
Methods inherited from Message
#==, deserialize, #hash, #serialize, #set_request_id
Constructor Details
#initialize(database, collection, selector, options = {}) ⇒ Query
Creates a new Query message
60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/mongo/protocol/query.rb', line 60 def initialize(database, collection, selector, = {}) @database = database @namespace = "#{database}.#{collection}" @selector = selector @options = @project = [:project] @limit = determine_limit @skip = [:skip] || 0 @flags = [:flags] || [] @upconverter = Upconverter.new(collection, selector, , flags) end |
Instance Method Details
#payload ⇒ Hash
Return the event payload for monitoring.
80 81 82 83 84 85 86 87 |
# File 'lib/mongo/protocol/query.rb', line 80 def payload { command_name: upconverter.command_name, database_name: @database, command: upconverter.command, request_id: request_id } end |
#replyable? ⇒ true
Query messages require replies from the database.
97 98 99 |
# File 'lib/mongo/protocol/query.rb', line 97 def replyable? true end |