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 удобен когда нужно дальше в пайплайне что-то сделать с объединенными запросами. Вероятно проще делать несколько агрегаци. Но если изловчиться, то в принципе вашу задачу можно решить одним запросом :)) но смысла в этом мало, больше времени потратите на разборки с группировкой
Dev
yopp
Примеров не найду, но общий смысл в том, чтобы гистограмму делать сразу одну на два измерения:
$group: {
_id: null,
drivers: {'0-6': {$sum: <$reduce который обходит весь документ, но считает итоговое значение для $sum для бакета drivers_0-6>}
// повторить для остальных бакетов
}
// повторить для passengers
}
yopp
Но это достаточно муторная задача, и если данных не очень много и время выполнения запроса не критично, быстрее сделать отдельными запросами :)
Dev
Konstantin
доброе утро всем
у меня монга сжирает всю озу, хочу это исправить.
добавляю:
storage:
   wiredTiger:
       engineConfig:
           cacheSizeGB: 2
выдает ошибку: Unrecognized option: wiredTiger
версия монги: 6.0.5
Konstantin
подскажите, что в таком случае делать
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
Matvey
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
подскажи пожалуйста что делать
yopp
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
yopp
Konstantin
Konstantin
Konstantin
storage:
dbPath: /var/lib/mongodb
wiredTiger:
engineConfig:
cacheSizeGB: 3
Konstantin
вот так?
yopp
Konstantin
все тоже самое
Konstantin
Konstantin
да
изменения все сохранил, но почему то выдает ту же ошибку
yopp
все тоже самое
проверьте что у вас в юните монги нет лишнего и туда действительно передаётся --config /etc/mongod.conf
Konstantin
yopp
и что внизу файла ничего нет лишнего
Konstantin
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.
yopp
вы точно на том-же хосте редактируете конфиг?
Konstantin
Konstantin
Konstantin
Konstantin
Konstantin
yopp
а что в /var/log/mongodb.log?
Konstantin
https://gist.github.com/kostyaavdonin/554b9fc931f4dacd81091f8da3edee2e
Konstantin
yopp
Konstantin
yopp
а что в журнале journalctl -x --no-pager -n 1000 -u mongod?
Konstantin
проблема была в том, что докер сьел всю память...
Konstantin
спасибо за помощь
Matvey
??
Как вы это сделали?
Я подключился к своему аккаунту Mongo DB и удалил все IP-адреса в доступе к базе данных, затем добавил свой текущий IP и 0.0.0.0. После этого я протестировал это на трех компьютерах, и всё работало.
Gleb
Ребят, всем привет! Подскажите пожалуйста, пытаюсь поднять mongo на vps сервере, она использует для подключения локальный айпишник. Могу ли я сделать так, чтобы к ней я могу подключаться по внешнему ip сервера?
Konstantin
Gleb
А я сейчас попробовал по внешнему подключиться и он подключился) все норм)
Ток я только создал базу данных, захожу в нее через компас и там создана база read me и просят скинуть пол биткоина за бекап данных))
Кто сталкивался с таким
Konstantin
Gleb
интересно, а как они парсят все это?
Konstantin
закрой внешние подключения к монге и все решится
и установи логин и пароль. а для подключения к монге юзай вход по ssh
Konstantin
зная твой айпишник можно спокойно подключиться к монге
Gleb
Gleb
Matvey
Danil
ребят. не получается сохранить поле trackId, в чем может быть дело?
Danil
Danil
весь мозг сломал, осподи
-
Asset
Всем салем, подскажите если база на atlas перекинуть на compass возможно или есть нюансы
Danil