Kirilll
Да и вариантов в дальнейшем будет больше если потребуются какие то действия с данными или расширение логики
Dev
Привет всем! У меня возникла задача: необходимо выполнить группировку данных по возрасту, например, в интервалах 0-6, 6-19 и так далее. Однако есть сложность: данные хранятся во вложенной структуре, и требуется выполнить три отдельные группировки для разных категорий: водители (cars), пассажиры (passengers) и пешеходы (pedestrians). Что будет более эффективным подходом: использовать один оператор $facet или разбить задачу на три отдельные агрегации? { id : 123, cars : [ { driver_age : 10, passengers : [ { id : 1 , passenger_age : 45 }, { id : 2 , passenger_age : 40 }, ] }, { driver_age : 45, passengers : [ { id : 3 , passenger_age : 22 }, { id : 4 , passenger_age : 38 }, ] } ], pedestrians : [ { id : 1, pedestrian_age : 10 }, { id : 2, pedestrian_age : 45 }, ] } result [ 'drivers' => [ '0-6' => 123, '9-19' => 4, '19-29' => 4, ], 'passengers' => [ '0-6' => 123, '9-19' => 4, '19-29' => 4, ] ]
yopp
Привет всем! У меня возникла задача: необходимо выполнить группировку данных по возрасту, например, в интервалах 0-6, 6-19 и так далее. Однако есть сложность: данные хранятся во вложенной структуре, и требуется выполнить три отдельные группировки для разных категорий: водители (cars), пассажиры (passengers) и пешеходы (pedestrians). Что будет более эффективным подходом: использовать один оператор $facet или разбить задачу на три отдельные агрегации? { id : 123, cars : [ { driver_age : 10, passengers : [ { id : 1 , passenger_age : 45 }, { id : 2 , passenger_age : 40 }, ] }, { driver_age : 45, passengers : [ { id : 3 , passenger_age : 22 }, { id : 4 , passenger_age : 38 }, ] } ], pedestrians : [ { id : 1, pedestrian_age : 10 }, { id : 2, pedestrian_age : 45 }, ] } result [ 'drivers' => [ '0-6' => 123, '9-19' => 4, '19-29' => 4, ], 'passengers' => [ '0-6' => 123, '9-19' => 4, '19-29' => 4, ] ]
Между $facet и тремя агрегациями нет разницы. $facet удобен когда нужно дальше в пайплайне что-то сделать с объединенными запросами. Вероятно проще делать несколько агрегаци. Но если изловчиться, то в принципе вашу задачу можно решить одним запросом :)) но смысла в этом мало, больше времени потратите на разборки с группировкой
yopp
Примеров не найду, но общий смысл в том, чтобы гистограмму делать сразу одну на два измерения: $group: { _id: null, drivers: {'0-6': {$sum: <$reduce который обходит весь документ, но считает итоговое значение для $sum для бакета drivers_0-6>} // повторить для остальных бакетов } // повторить для passengers }
yopp
Но это достаточно муторная задача, и если данных не очень много и время выполнения запроса не критично, быстрее сделать отдельными запросами :)
Konstantin
доброе утро всем у меня монга сжирает всю озу, хочу это исправить. добавляю: storage:    wiredTiger:        engineConfig:            cacheSizeGB: 2 выдает ошибку: Unrecognized option: wiredTiger версия монги: 6.0.5
Konstantin
подскажите, что в таком случае делать
V
Всем привет Может кто-нибудь сталкивался Имею в коллекции документы вида: { "_id": { "$oid": "642f868ffad9046e9cbdee88" }, "rootId": "7d451efd-ac3a-480f-815d-d693edbee5cb", "someAttribute": { "_id": { "$oid": "64e49da99a0c8d053d17bfae" }, "rootId": "d5b72597-7704-44a3-95fa-5fcf86044753" } } по какой-то причине, после применения aggregate или update скрипта к этому документу через liquibase, теряется вложенный someAttribute При том, что этот атрибут в агрегационном пайплайне никак не задействован - сэтается значение для другого атрибута. Аналогично в update
Konstantin
× mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Fri 2024-03-15 15:13:40 UTC; 1min 12s ago Docs: https://docs.mongodb.org/manual Process: 3768 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=1/FAILURE) Main PID: 3768 (code=exited, status=1/FAILURE) CPU: 151ms Mar 15 15:13:40 vps mongod[3768]: Frame: {"a":"55741E3ECC17","b":"55741C267000","o":"2185C17","s":"_ZN5mongo46_mongoInitializerFunction_ServerLogRedi> Mar 15 15:13:40 vps mongod[3768]: Frame: {"a":"557420FF57D7","b":"55741C267000","o":"4D8E7D7","s":"_ZN5mongo11Initializer19executeInitializersERKSt6v>
Konstantin
подскажи пожалуйста что делать
Konstantin
Konstantin
А что в логах самой монги?
-- Boot 97ac5f0258c945b0aa79fe13ec74eabb -- Mar 15 07:12:42 vps systemd[1]: Started MongoDB Database Server. Mar 15 07:20:52 vps systemd[1]: Stopping MongoDB Database Server... Mar 15 07:20:54 vps systemd[1]: mongod.service: Deactivated successfully. Mar 15 07:20:54 vps systemd[1]: Stopped MongoDB Database Server. Mar 15 07:20:54 vps systemd[1]: mongod.service: Consumed 31.663s CPU time. Mar 15 07:20:54 vps systemd[1]: Started MongoDB Database Server. Mar 15 07:20:54 vps mongod[6872]: Unrecognized option: wiredTiger.engineConfig.cacheSizeGB Mar 15 07:20:54 vps mongod[6872]: try '/usr/bin/mongod --help' for more information Mar 15 07:20:54 vps systemd[1]: mongod.service: Main process exited, code=exited, status=2/INVALIDARGUMENT Mar 15 07:20:54 vps systemd[1]: mongod.service: Failed with result 'exit-code'. Mar 15 07:21:51 vps systemd[1]: Started MongoDB Database Server. Mar 15 07:23:49 vps systemd[1]: Stopping MongoDB Database Server... Mar 15 07:23:49 vps systemd[1]: mongod.service: Deactivated successfully. Mar 15 07:23:49 vps systemd[1]: Stopped MongoDB Database Server. Mar 15 07:23:49 vps systemd[1]: mongod.service: Consumed 6.135s CPU time. Mar 15 07:23:49 vps systemd[1]: Started MongoDB Database Server. Mar 15 07:23:49 vps mongod[7254]: Unrecognized option: wiredTiger Mar 15 07:23:49 vps mongod[7254]: try '/usr/bin/mongod --help' for more information Mar 15 07:23:49 vps systemd[1]: mongod.service: Main process exited, code=exited, status=2/INVALIDARGUMENT Mar 15 07:23:49 vps systemd[1]: mongod.service: Failed with result 'exit-code'. Mar 15 07:24:35 vps systemd[1]: Started MongoDB Database Server. Mar 15 07:33:50 vps systemd[1]: Stopping MongoDB Database Server...
Konstantin
/etc/mongod.conf
yopp
-- Boot 97ac5f0258c945b0aa79fe13ec74eabb -- Mar 15 07:12:42 vps systemd[1]: Started MongoDB Database Server. Mar 15 07:20:52 vps systemd[1]: Stopping MongoDB Database Server... Mar 15 07:20:54 vps systemd[1]: mongod.service: Deactivated successfully. Mar 15 07:20:54 vps systemd[1]: Stopped MongoDB Database Server. Mar 15 07:20:54 vps systemd[1]: mongod.service: Consumed 31.663s CPU time. Mar 15 07:20:54 vps systemd[1]: Started MongoDB Database Server. Mar 15 07:20:54 vps mongod[6872]: Unrecognized option: wiredTiger.engineConfig.cacheSizeGB Mar 15 07:20:54 vps mongod[6872]: try '/usr/bin/mongod --help' for more information Mar 15 07:20:54 vps systemd[1]: mongod.service: Main process exited, code=exited, status=2/INVALIDARGUMENT Mar 15 07:20:54 vps systemd[1]: mongod.service: Failed with result 'exit-code'. Mar 15 07:21:51 vps systemd[1]: Started MongoDB Database Server. Mar 15 07:23:49 vps systemd[1]: Stopping MongoDB Database Server... Mar 15 07:23:49 vps systemd[1]: mongod.service: Deactivated successfully. Mar 15 07:23:49 vps systemd[1]: Stopped MongoDB Database Server. Mar 15 07:23:49 vps systemd[1]: mongod.service: Consumed 6.135s CPU time. Mar 15 07:23:49 vps systemd[1]: Started MongoDB Database Server. Mar 15 07:23:49 vps mongod[7254]: Unrecognized option: wiredTiger Mar 15 07:23:49 vps mongod[7254]: try '/usr/bin/mongod --help' for more information Mar 15 07:23:49 vps systemd[1]: mongod.service: Main process exited, code=exited, status=2/INVALIDARGUMENT Mar 15 07:23:49 vps systemd[1]: mongod.service: Failed with result 'exit-code'. Mar 15 07:24:35 vps systemd[1]: Started MongoDB Database Server. Mar 15 07:33:50 vps systemd[1]: Stopping MongoDB Database Server...
Mar 15 07:20:54 vps mongod[6872]: Unrecognized option: wiredTiger.engineConfig.cacheSizeGB wiredTiger должен быть внутри ключа storage
Konstantin
storage: dbPath: /var/lib/mongodb wiredTiger: engineConfig: cacheSizeGB: 3
Konstantin
вот так?
Konstantin
-- Boot 97ac5f0258c945b0aa79fe13ec74eabb -- Mar 15 07:12:42 vps systemd[1]: Started MongoDB Database Server. Mar 15 07:20:52 vps systemd[1]: Stopping MongoDB Database Server... Mar 15 07:20:54 vps systemd[1]: mongod.service: Deactivated successfully. Mar 15 07:20:54 vps systemd[1]: Stopped MongoDB Database Server. Mar 15 07:20:54 vps systemd[1]: mongod.service: Consumed 31.663s CPU time. Mar 15 07:20:54 vps systemd[1]: Started MongoDB Database Server. Mar 15 07:20:54 vps mongod[6872]: Unrecognized option: wiredTiger.engineConfig.cacheSizeGB Mar 15 07:20:54 vps mongod[6872]: try '/usr/bin/mongod --help' for more information Mar 15 07:20:54 vps systemd[1]: mongod.service: Main process exited, code=exited, status=2/INVALIDARGUMENT Mar 15 07:20:54 vps systemd[1]: mongod.service: Failed with result 'exit-code'. Mar 15 07:21:51 vps systemd[1]: Started MongoDB Database Server. Mar 15 07:23:49 vps systemd[1]: Stopping MongoDB Database Server... Mar 15 07:23:49 vps systemd[1]: mongod.service: Deactivated successfully. Mar 15 07:23:49 vps systemd[1]: Stopped MongoDB Database Server. Mar 15 07:23:49 vps systemd[1]: mongod.service: Consumed 6.135s CPU time. Mar 15 07:23:49 vps systemd[1]: Started MongoDB Database Server. Mar 15 07:23:49 vps mongod[7254]: Unrecognized option: wiredTiger Mar 15 07:23:49 vps mongod[7254]: try '/usr/bin/mongod --help' for more information Mar 15 07:23:49 vps systemd[1]: mongod.service: Main process exited, code=exited, status=2/INVALIDARGUMENT Mar 15 07:23:49 vps systemd[1]: mongod.service: Failed with result 'exit-code'. Mar 15 07:24:35 vps systemd[1]: Started MongoDB Database Server. Mar 15 07:33:50 vps systemd[1]: Stopping MongoDB Database Server...
Konstantin
все тоже самое
Konstantin
Konstantin
да
изменения все сохранил, но почему то выдает ту же ошибку
yopp
все тоже самое
проверьте что у вас в юните монги нет лишнего и туда действительно передаётся --config /etc/mongod.conf
yopp
и что внизу файла ничего нет лишнего
yopp
пожалуйста, не постите сюда много текста. либо файлом либо на gist.github.com или другой сервис
Konstantin
хорошо
yopp
а каким образом?
systemctl status monogod, там в строке Loaded будет путь к юнит-файлу
yopp
помоему это /usr/lib/systemd/system/mongod.service
Konstantin
systemctl status monogod Unit monogod.service could not be found.
Konstantin
помоему это /usr/lib/systemd/system/mongod.service
https://gist.github.com/kostyaavdonin/c2913b36b28ae8cc67e9679967457b3a
yopp
systemctl status monogod Unit monogod.service could not be found.
тут опечатка, должно быть systemctl status mongod, o лишняя одна
yopp
вы точно на том-же хосте редактируете конфиг?
Konstantin
yopp
что делать в таком случае?
уберите часть с wiredTiger и ещё раз проверьте что точно тот файл редактируете
yopp
есть вот только что открыл файл
закоментируйте весь блок с wiredTiger, оставьте там только dbPath и попробуйте запустить сервис ещё раз
Konstantin
yopp
а что в /var/log/mongodb.log?
Konstantin
а что в /var/log/mongodb.log?
https://gist.github.com/kostyaavdonin/1b0f0fb603fb1069aaccc5d71fe89097
yopp
https://gist.github.com/kostyaavdonin/1b0f0fb603fb1069aaccc5d71fe89097
там только небольшая его часть. сделайте tail -n 1000 и загрузите ещё раз
Konstantin
https://gist.github.com/kostyaavdonin/554b9fc931f4dacd81091f8da3edee2e
yopp
а что в журнале journalctl -x --no-pager -n 1000 -u mongod?
Konstantin
проблема была в том, что докер сьел всю память...
Konstantin
спасибо за помощь
??
Получилось исправить?
Да, мне удалось исправить это, спасибо.
??
Как вы это сделали?
Я подключился к своему аккаунту Mongo DB и удалил все IP-адреса в доступе к базе данных, затем добавил свой текущий IP и 0.0.0.0. После этого я протестировал это на трех компьютерах, и всё работало.
Gleb
Ребят, всем привет! Подскажите пожалуйста, пытаюсь поднять mongo на vps сервере, она использует для подключения локальный айпишник. Могу ли я сделать так, чтобы к ней я могу подключаться по внешнему ip сервера?
Gleb
А я сейчас попробовал по внешнему подключиться и он подключился) все норм) Ток я только создал базу данных, захожу в нее через компас и там создана база read me и просят скинуть пол биткоина за бекап данных)) Кто сталкивался с таким
Gleb
интересно, а как они парсят все это?
Konstantin
закрой внешние подключения к монге и все решится и установи логин и пароль. а для подключения к монге юзай вход по ssh
Konstantin
интересно, а как они парсят все это?
по базам мб каким то пробивают айпишники и подключаются. но тебя даже никто и не взламывал — твоя база данных без пароля даже)
Konstantin
зная твой айпишник можно спокойно подключиться к монге
Gleb
по базам мб каким то пробивают айпишники и подключаются. но тебя даже никто и не взламывал — твоя база данных без пароля даже)
ну это да, я понимаю) Я все равно просто учусь с ней работать поэтому ничего страшного)
Konstantin
ну это да, я понимаю) Я все равно просто учусь с ней работать поэтому ничего страшного)
самое главное когда будешь уже в продакшн проект выводить - позаботься о безопасности + никогда не забывай делать дампы
Matvey
закрой внешние подключения к монге и все решится и установи логин и пароль. а для подключения к монге юзай вход по ssh
Данные в базе пропадают через время, это тоже связано со внешним подключением?
Danil
ребят. не получается сохранить поле trackId, в чем может быть дело?
Danil
Danil
весь мозг сломал, осподи
Danil
А где пример, как вы сохраняете?
На первом скрине ошибка, вложенный type не нужен
-
На первом скрине ошибка, вложенный type не нужен
Ну, классно вы описываете схемы. Пишите *Id, а сами складываете туда object от другой схемы
Asset
Всем салем, подскажите если база на atlas перекинуть на compass возможно или есть нюансы