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.
Красота =)

Удачного дня!

Оставить комментарий

© 2010 - 2024 Ядоблог. Ничего не защищено.
Powered by Лаборатория Яда. Написать Яду