MongoDB удаление атрибута(из массива) внутри объекта.
11 марта, 2011
Продолжаем изучать MongoDB.
На этот раз хитрое удаление.
Допустим имеется коллекция объектов:
Это сайты, в которых есть поле пользователи и это поле является массивом пользователей этого сайта.
И нам нужно удалить конкретного пользователя в сайте.
Допустим мы знаем site_id и user_id пользователя внутри коллекции пользователей этого сайта.
Реализация:
$where=array('site_id'=>$site_id); $set=array('$pull'=>array('users'=>array('user_id'=>$user_id))); $this->db->sites->update($where,$set); |
Разберём конструкцию.
$where — ограничиваем множество документов крупным критерием(выбрали сайт по его site_id).
$set — указываем метод(вытянуть) элемент из users(users должно быть массивом(коллекцией)), где user_id у этого элемента наш $user_id.
Красота =)
Удачного дня!