Вот как я выполняю поиск:
Код: Выделить всё
select ($select) -> where_in_all ('tags', $tags) -> get ('uploaded_files');
Я использую отличную оболочку MongoDB от vesparny. Это код в этой оболочке для обычного поиска в_массиве:
Код: Выделить всё
public function where_in_all($field = "", $in = array()){
$this->_where_init($field);
$this->wheres[$field]['$all'] = $in;
return ($this);
}
Код: Выделить всё
public function where_in_all_like($field = "", $in = array()){
$this->_where_init($field);
$this->wheres[$field]['$all'] = new MongoRegex('/'.$in.'/i');
return ($this);
}
Обертку можно найти здесь:
Код: Выделить всё
https://github.com/vesparny/cimongo-codeigniter-mongodb-library
Обновление
Кажется, это работает, НО только на моем локальном сервере... Не на рабочем сервере.
Код: Выделить всё
public function where_in_all_like($field = "", $in = array()){
$newarray = array ();
foreach ($in as $value) {
array_push ($newarray, new MongoRegex('/'.$value.'/i'));
}
$this->_where_init($field);
$this->wheres[$field]['$all'] = $newarray;
return ($this);
}
Я обновил MongoDB на своем сервере до версии 2.0.4 и сейчас все работает нормально.
Подробнее здесь: https://stackoverflow.com/questions/105 ... odb-in-php
Мобильная версия