the group aggregate field name 'org_data.center' cannot be used because $group's field names cannot contain '.'


           $following_pipe[] =  [
               '$group' => ['_id' => '$' . $groupBy,
               'org_data.center' => [

                   ['$first' => '$org_data.center.longitude'],
                   ['$first' => '$org_data.center.latitude'],

                   ],
                'org_data._id' => [
                    ['$first' => '$_id'],
                ]
                   
                ]
            ];

the group aggregate field 'center' must be defined as an expression inside an object

Ускорение работы приложения, которое выгружает данные на диск, если нет возможности указать использовать другой объём RAM

Предположим что у вас есть приложение/ситуация, в которой (три момента):

  1. По умолчанию работает с оперативной памятью (RAM)
  2. Если оперативной памяти не хватает, то это приложение свопит данные на диск, и потом забирает их с диска, отдавая наружу
  3. Вы не можете почему либо увеличить объём оперативы, используемой этим приложением (например, используемый объём "зашит" внутрь кода программы)

Решение:

Своп -- что это в программировании (swap), "свопиться"

Своп -- по сути это некий "обмен", или "подмена" чего-то чем-то.

Виды свопа

Различают:

yii2 mongodb $cursor->toArray Работает слишком медленно -- как ускорить выборку больших объёмов данных из mongo в проложение

Вызов типа:

$cursor = \Yii::$app->mongodb->createCommand(\Yii::$app->mongodb->getQueryBuilder()->aggregate(
		$collection->name, $pipeline, 
		['allowDiskUse' => true, 'cursor' => ['batchSize' => $this->batchSize]]))->execute();

$resultArray = $cursor->toArray();

-- практически все время при большой выборке потратит на вызов toArray(), и это будет проходить медленно.

Итерируемся сами

Можно итерироваться по курсору, без вызова toArray(), но даже пустая итерация типа:

mongodb Как ускорить сортировку $sort (что делать, если она медленно работает)

Делаем так:

  1. Проиндексируйте поля по которым ищите (учитываетй, что sprace подходит не всегда)
  2. Максимально облегайте сортируемые записи с помощью $project
  3. Следуйте общим рекомендациям по оптимизации

mongodb sprace Индекс и скорость сортировки

mongodb 3.4 не использует спрэйс индексы, если не во всех документах есть указанные значения:
Актуальная информация: https://docs.mongodb.com/manual/core/ind...

Используйте индексы без sprace, если вы не уверены в том, что в каждом документе есть идексируемые поля.

symfony FOSUserBundle -- как удалить валидацию ненужных полей

Предположим, что вы используете FOSUserBundle для регистрации пользователей в вашем проекте. И возможно, вам не нужны некоторые стандартные поля, предлагаемые пакетом. А значит, вы уже переопределили форму регистрации RegistrationType.php.

Но теперь при попытке регистрации получаем предупреждения о невалидных значениях удалённых полей.

Что мы знаем о валидации в Stymfony FOSUserBundle

Файл валидации FOSUserBundle в Symfony находится по адресу:

git-ftp Установка в Ubuntu Linux

Устанавливаем:

sudo apt-get install git-ftp

(установится как расширение команды git)

И переходим к настройке локального репозитория.

Pages

Subscribe to fkn+antitotal RSS