Class Mongo::Protocol::Query
In: lib/mongo/protocol/query.rb
Parent: Message

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 consistency and integrity the results.

@api semipublic

Methods

compress!   new   payload   replyable?  

Included Modules

Monitoring::Event::Secure

Classes and Modules

Class Mongo::Protocol::Query::Upconverter

Constants

OP_CODE = 2004   The operation code required to specify a Query message. @return [Fixnum] the operation code.

@since 2.5.0

FLAGS = [ :reserved, :tailable_cursor, :slave_ok, :oplog_replay, :no_cursor_timeout, :await_data, :exhaust, :partial   Available flags for a Query message.

Attributes

upconverter  [R] 

Public Class methods

Creates a new Query message

@example Find all users named Tyler.

  Query.new('xgen', 'users', {:name => 'Tyler'})

@example Find all users named Tyler skipping 5 and returning 10.

  Query.new('xgen', 'users', {:name => 'Tyler'}, :skip => 5,
                                                 :limit => 10)

@example Find all users with slave ok bit set

  Query.new('xgen', 'users', {:name => 'Tyler'}, :flags => [:slave_ok])

@example Find all user ids.

  Query.new('xgen', 'users', {}, :fields => {:id => 1})

@param database [String, Symbol] The database to query. @param collection [String, Symbol] The collection to query. @param selector [Hash] The query selector. @param options [Hash] The additional query options.

@option options :project [Hash] The projection. @option options :skip [Integer] The number of documents to skip. @option options :limit [Integer] The number of documents to return. @option options :flags [Array] The flags for the query message.

  Supported flags: +:tailable_cursor+, +:slave_ok+, +:oplog_replay+,
  +:no_cursor_timeout+, +:await_data+, +:exhaust+, +:partial+

Public Instance methods

Compress this message.

@param [ String, Symbol ] compressor The compressor to use. @param [ Integer ] zlib_compression_level The zlib compression level to use.

@return [ Compressed, self ] A Protocol::Compressed message or self, depending on whether

 this message can be compressed.

@since 2.5.0

Return the event payload for monitoring.

@example Return the event payload.

  message.payload

@return [ BSON::Document ] The event payload.

@since 2.1.0

Query messages require replies from the database.

@example Does the message require a reply?

  message.replyable?

@return [ true ] Always true for queries.

@since 2.0.0

[Validate]