Страница 1 из 1

yii2. Mongo AR SubDocument[Обсуждение]

Добавлено: 2014.08.21, 15:38
kmddm
Привет всем.
Кто-то из форумчан пользуется mongo active record?
У меня есть желание написать библиотеку, которая поможет реализовать более простую работу с subdocuments в монго.
Если почитать документацию http://www.yiiframework.com/doc-2.0/ext ... -documents
то текущая версия не поддериживает "поддокументов" и предлагает хранить денормализированные данные.

В общем я для своего проекта реализовал этот функционал и если он кому-то кроме меня нужен, то я уделю время и сделаю релиз.
Как это выглядит.

Например: мы хотим хранить комментарии к товару в одном документе, но при этом пользоваться удобствами AR.
Как будут выглядеть наши модели:

Код: Выделить всё

class Comment extends ActiveRecord
{
    public function attributes()
    {
        return ['_id', 'user', 'date', 'text'];
    }

    public function rules()
    {
     .....
    }
}

class Product extends ActiveRecord
{
    ...
    public function behaviors()
    {
        return [
             [
                 class => SubDocumentBehavior::className(),
                 'key' => 'comments',
                 'model' => '\models\Comment'
             ]
       ];
    }
    ...
}
после подключения поведения для модели товара будут доступны новые методы:
getComments()
addComment()
removeComment()
findComments(['user_id'=>'abc123'])

как-то так.

Re: yii2. Mongo AR SubDocument[Обсуждение]

Добавлено: 2014.08.21, 22:10
Ekstazi
Вещь будет однозначно полезная. Надо делать.