mongodb

Opensource в IFF: как поучаствовать в создании свободного ПО

Репозитории

Возможно участие в развитии проектов:

mongodb Модуль для PHP -- установка (mongo)

Обновляем кеш пакетов, потом ищем:

sudo apt-cache search php-mongo

в моём случае выдал:

php-mongodb - MongoDB driver for PHP
php-mongo - MongoDB database driver

Смотрим есть ли во втором пакет для php7 (в первом не оказалось в моём случае):

apt-cache show php-mongodb | grep php7

Оказывается есть и для 7.2, посмотрим откуда пойдёт установка:

yii2 mongodb ActiveRecord Сортировка

По-идее так же как и в любой эктиврекорд:

$sort = 'ASC';
$reports = Report::find()
		->where(['in', '_id', $this->report_ids])
		->orderBy("creation_data $sort")
		->all();

yii2 commad -- переделать запрос из лога в формат mongodb. Изменение формата

Руками можно по такому принципу -- из:

ИМЯБАЗЫ.command(
{"aggregate":"ИМЯКОЛЛЕКЦИИ",
	"pipeline":[	
        {"$limit":5}
	],
    "allowDiskUse":true,
	"cursor":{"batchSize":1000}
})

в:

db.ИМЯКОЛЛЕКЦИИ.aggregate([
	{"$limit":5}
],
{"allowDiskUse":true,"cursor":{"batchSize":50000}}
)

mongodb, sort skip limit, pipeline -- Выясняем как тут сортировать данные при агрегации

$sort + $limit Memory Optimization

When a sort immediately precedes a limit in the pipeline, the $sort operation only maintains the top n results as it progresses, where n is the specified limit, and MongoDB only needs to store n items in memory. This optimization still applies when allowDiskUse is true and the n items exceed the aggregation memory limit.

Changed in version 2.4: Before MongoDB 2.4, $sort would sort all the results in memory, and then limit the results to n results.

mongodb Оптимизация запросов -- как ускорить выборку (скорость и производительность)

Диагностика проблем производительности

Рекомендации по изменению запросов

  1. Если можете облегчить выборку перед любым "затратным" по времени действием, сделайте это с помощью $project (например перед lookup с другой коллекцией)
  2. $lookup:
    • Индексируйте поля по которым происходит lookup

Ajax-запрос -- бесконечно выполняющийся, дольше чем время выполнения скрипта на сервере (мистика)

По-идее такого быть не может, что что-то похожее наблюдалось с присутствием цикла while и выполнения запроса к mongodb.

При этом сама монга в диспетчере линукса (top) показывала, что занимает 300 процентов CPU, другие запросы к ней тоже выполнялись медленно до тех пор, пока процесс монги не был перезагружен.

Pages

Subscribe to RSS - mongodb