class Monga::Protocol::Query

Constants

FLAGS

Public Instance Methods

body() click to toggle source
# File lib/monga/protocol/query.rb, line 14
def body
  @body ||= begin
    skip = @options[:skip] || 0
    limit = get_limit
    selector = @options[:selector] || {}

    query = {}
    query["$query"] = @options[:query] || {}
    query["$hint"] = @options[:hint] if @options[:hint]
    query["$orderby"] = @options[:sort] if @options[:sort]
    query["$explain"] = @options[:explain] if @options[:explain]

    msg = ::BinUtils.append_int32_le!(nil, flags)
    msg << full_name << Monga::NULL_BYTE
    ::BinUtils.append_int32_le!(msg, skip, limit)
    msg << query.to_bson
    msg << selector.to_bson if selector.any?
    msg
  end
end

Private Instance Methods

get_limit() click to toggle source
# File lib/monga/protocol/query.rb, line 37
def get_limit
  if @options[:batch_size]
    @options[:batch_size]
  elsif @options[:limit]
    -@options[:limit]
  else
    0
  end
end