Method: Easymongo::Query#ids

Defined in:
lib/easymongo/query.rb

#ids(data) ⇒ Object

Make sure data is optimal



108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# File 'lib/easymongo/query.rb', line 108

def ids(data)

  # Just return if nothing to do
  return data if data and data.empty?

  # Support passing id as string
  data = {'_id' => data} if !data or data.is_a?(String)

  # Turn all keys to string
  data = data.stringify_keys

  # Convert id to _id for mongo
  data['_id'] = data.delete('id') if data['id']

  # Convert ids to BSON ObjectId
  data.each do |k, v|
    if v.is_a?(String) and v =~ /^[0-9a-fA-F]{24}$/
      data[k] = oid(v)
    end
  end

  # Return data
  data
end