| 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
| upconverter | [R] |
@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+
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
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