public function prepareQuery($query)
{
if (is_scalar($query)) {
$query = array('_id' => $query);
}
if ($this->class->hasDiscriminator() && ! isset($query[$this->class->discriminatorField['name']])) {
$discriminatorValues = $this->getClassDiscriminatorValues($this->class);
$query[$this->class->discriminatorField['name']] = array('$in' => $discriminatorValues);
}
$newQuery = array();
foreach ($query as $key => $value) {
$value = $this->prepareWhereValue($key, $value);
$newQuery[$key] = $value;
}
return $newQuery;
}