Nick
Nick
Amir
Max
посмотрите профайлером где тупит пхп
Nick
сейчас бы форвардить чтобы нельзя было переключиться на исходное сообщее
Max
https://t.me/MongoDBRussian/24089
Anonymous
ребята, кто-то пытался монгодб драйвер устанавливать для php?
http://us1.php.net/manual/en/mongodb.installation.manual.php
Anonymous
у меня почемуто на этапе ./configure выдаёт ошибку - просит пакет krb5-gssapi, которого в природе не существует. При чём тут керберос - вообдще хз
Anonymous
configure: error: Package requirements (krb5-gssapi) were not met:
No package 'krb5-gssapi' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables PHP_MONGODB_SASL_CFLAGS
and PHP_MONGODB_SASL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
Anonymous
помогите плз если кто понимает
Alexey
привет, есть тут бдящие? :)
Alexey
вопрос повышенной сложности: с помощью чего я могу пройти по всем документам в коллекции и собрать среднее арифметическое значений конкретных полей?
Anonymous
Anonymous
Если да то aggregate вам нужн
Alexey
да, хочу, к примеру, определить среднюю зарплату сотрудников. Мне для этого через aggregate нужно получить сумму зарплат, а потом разделить на кол-во записей? Или там как-то все изящно делается?
Anonymous
aggregate $group $avg
Alexey
ок, спс, пошел копаться
Anonymous
Нзч.
Alexey
а есть какая-то возможность округления расчитанных значений? что-то типа
db.employees.aggregate([
{$group: {_id: 0, avgSalary: Math.round({$avg: "$salary"})}}
])
?
Nikita
а можно самому генерировать ID на клиенте для записи в бд ?)
yopp
yopp
Alexey
не, не подходит. Я хотел округление с указанной точностью, похоже, что такого нет
yopp
yopp
Или кщё лучше, не храните больше никогда деньги во флоатах
Alexey
хм, ну деньги-то в интах хранятся, а вот среднее получается дробным, это да
yopp
Этого не категорически нельзя делать, у вас могу существенные ошибки в расчётах
yopp
Alexey
так и сделал, спасибо :)
yopp
Ну или если у вас есть возможность со стороны драйверов и монга 3.4+, то перейдите на BigDecimal
https://docs.mongodb.com/manual/tutorial/model-monetary-data/
Alexey
еще 1 нубский вопрос: с помощью чего я могу найти самую раннюю (по дате) статью в указанной категории например?
yopp
В запросе фильтр по атрибуту категории и сортировка по дате по возврастанию. Первая запись и будет самой ранней
Max
для истории ...
проблему решили
в проблеме участвовали
- реплика из 2-х mongod и одного арбитра версии 3.6.4
- приложение на пхп с драйвером mongodb 1.4.3
- нагрузка 1,5 К записей в монгу в минуту
Арбитр был закрыт фаерволом от всех кроме mongod. Открыли арбитр для пхп и пхп перестал тупить ... 😐
Max
привет. возможно не совсем по теме .. кто то сталкивался с ситуацией на пхп, когда подключение только к мастеру, запись 1,5к/мин документов отдельными запросами проходит нормально. А вот когда в конекшин стринг появляется слэйв - пхп начинает дико тупить
драйвер установлен последний, монга 3,6
vitalii
можно вопрос , почему avg_age в ceil не находит , как я понял , агрегацию можно делать подряд
db.getCollection('binaryAcademy').aggregate([{$group : {_id:null,avg_age : {$avg : "$age"}}},{ $ceil: avg_age}]);
Nick
Max
нет, со слейва тоже доступен
SvPupok
Я так понимаю, что если под условие обновления попадает несколько документов, то в случае updateOne() обновится просто первый документ.
Nick
updateOne() updates the first matching document in the collection that matches the filter, using the update instructions to apply modifications.
https://docs.mongodb.com/manual/reference/method/db.collection.updateOne/#behavior
Nick
видимо доку невнимательно читаете
Aleksey
Коллеги а почему монга не ставит на базу по умолчанию 0700 а оставляет дефолтные странные для бд 0755 ? в этом есть какая то логика или тупо прожужали ?
yopp
Aleksey
конечно ос ставит.
Aleksey
но почему они так оставляют ?
yopp
Думаю ты хорошо угадал второй вариант :)
yopp
Кстати 0700 плохие права. Я бы группе оставил чтение
yopp
Чтоб обслуживающее ПО не под монговским пользователем бегало
Aleksey
ну ага.
yopp
Посмотри в жире, там скорее всего с 1.8 лежит незакрытый ишшуй на эту тему ;) лайкни и бампни его своим юзкейсом
vitalii
парни вопрос , делаю вот такую команду
как теперь найти первое совпадение в масиве friends по имени ?
id,index,name,friends[{name:"sfaf"}....]
.aggregate([{$match:{index: {$gt: 5}}},{$unwind:"$friends"}])
yopp
Ещё раз match и limit 1
yopp
Но такое вообще проще сразу в match вписать
yopp
index: {...}, “friends.name”: “foo”
vitalii
yopp
И тогда вы можете без агрегации обойтись и оставить только findOne
yopp
SvPupok
Момент, сейчас до компа дойду и посмотрю
SvPupok
я имею в виду в стартовом скрипте сервиса следующее:
ExecStartPre=/usr/bin/chmod -R 0755 /var/run/mongodb
т.е. можно прям при старте базы задавать необходимые пермишены на каталог с датафайлами базы
Max
да, а если база большая - сидите и ждите, пока оно все везде проставит.
лучше через umask попробовать
Max
Может быть
но звучит странно, как ни крути
Roman
https://www.percona.com/live/e17/sites/default/files/slides/Running%20MongoDB%20in%20Production%20-%20FileId%20-%20115299.pdf
Roman
вдруг кто не видел
Aleksey
Aleksey
@pragus рома если ты знаешь лично делавшенго презу передай ему что он не очень.
Aleksey
Aleksey
Aleksey
глаза очень вытекают
Aleksey
но в остальном хорошо кратенько и по делу. очень спасибо
Aleksey
под рекомендацию ext4 data=ordered vs xfs хочется букв и графиков
Roman
yopp
Очень хорошие слайды. Но вот мониторинг с observability перепутали, про то что в метриках надо искать при troubleshooting тоже не сказали
yopp
Stable: 3.6.4 (Apr 13, 2018), Bugfix: 3.4.14 (Mar 20, 2018)
MongoDB quick overview/production notes: https://www.percona.com/live/e17/sites/default/files/slides/Running%20MongoDB%20in%20Production%20-%20FileId%20-%20115299.pdf
3.6.4: https://docs.mongodb.com/manual/release-notes/3.6/#apr-13-2018
3.4.14: https://docs.mongodb.com/manual/release-notes/3.4/#march-20-2018 (3.4.15 upcoming)
3.2.19: https://docs.mongodb.com/manual/release-notes/3.2/#feb-6-2018 (3.2.20 upcoming, End of life: September 2018)
3.0.x: Support ended February 2018
yopp
Aleksey
я конечно верю парням из перконы. но экспертные мнения эт не оч
SvPupok
Мне у перуоны мониторинг нравится
Anonymous
ребята, помогите, пожалуйста, понять, как на php сделать выборку из монги. Сижу битый час ничё не понятно. Мне нужно выбрать все доки из коллекции, сгруппировав их по полю field1 выбрав так, чтобы field2 был наибольшим.
Вообще group не работает ч-то. Делаю на yii2.
Nick
вам select f1,max(f2) group by f1?