Nick
Помощь нужна, сам пока не могу осилить:
Выполняю aggregate с такими stages
[{'$match':},
{'$limit':},
{'$project':{}},
{'$group': {'_id': '$name', 'records': {'$push': '$$ROOT'}}},
{'$sort': {}}]
Записей от 400 тысяч, хочу выгрузить данные для записи в файл, получаю ошибку:
$push used too much memory and cannot spill to disk. Memory limit: 104857600 bytes, full error: {'ok': 0.0, 'errmsg': '$push used too much memory and cannot spill to disk. Memory limit: 104857600 bytes', 'code': 146, 'codeName': 'ExceededMemoryLimit'}
Видимо надо как-что pagination сделать.
Везде пишут про $facet - но он с ним такой запрос(например)
{$match: {'need_field':134744}},
{$sort: {'_id': 1}},
{$facet : {
data: [
{ $skip: 0 },
{ $limit: 5000 }
]
} }
]) - невозможно дождаться исполнения.
Кто сталкивался с ошибой и как делается pages с агрегацией.
а что вы делаете с тем содержимым, которое внутри records собирается?
Andrey
Andrey
Я так понимаю, там проблема в группировке
Andrey
Хотелось максимально на базу переложить это
Алишер Абдуллаев
привет. кто-нибудь сталкивался с подобной ошибкой ?
WiredTiger error
WiredTiger.wt: read checksum error for 4096B block at offset 81920: block header checksum of 0xf14da6b5 doesn't match expected checksum of 0xa1a4a048"
Алишер Абдуллаев
Максим
Как в монгу забить выражение ?
Mike
Такой вопрос:
MongoDb каким то образом может работать в многопоточном режиме -используя полностью все потоки ядер?
И существуют ли какие то сторонние(или любые дополнительные) инструменты по ускорению работы запросов?
Andrey
Nick
Sultan
Всем привет
Антон
привет! делаю агрегацию, суммирую данные по месяцу (перевожу дату в месяц) и категории. есть месяца, когда нет категории, как можно добавить значение 0, если не было такого месяца?
Davyd
Всем привет! Кто-нибудь сможет помочь с одной проблемой? Я выставил свой вопрос на стэке, но на него до сих пор нет ответа, хотя он довольно простой. Я только начал что-то делать с MongoDB. Мне нужно только вывести данные из базы данных. Всё. Это всё, что мне нужно. Буду дико благодарен каждому, кто сможет помочь.
Anonymous
Anonymous
Почти
Anonymous
router.get('/', async(req, res) => {
res.render('index', {data: await articles.find({}).toArray()})
})
Davyd
Davyd
Извини, это не сработало.
Davyd
Я видел, как некоторые разрабы достают данные путём обращения к монгуссу, а потом писали что-то вроде db.find('somethin').toArray()
Davyd
Но я смотрел один видеоурок, в котором так не делалось
Davyd
https://www.youtube.com/watch?v=8bE_PBRriyU
Здесь человек делает приложение Todo
Davyd
Но я делал блог
Davyd
Оно вернуло [object Object]
Davyd
Вау, у меня что-то получилось с этим куском кода:
router.get('/', (req, res) => {
const data = await articles.find().exec()
res.render('index', {data})
})
Davyd
Но текст ещё пуст
Davyd
Три блока — три записи. Вот это уже ближе похож на исправленный код, но не совсем.
Davyd
Теги заголовков и текста ещё пусты.
Відьма🐝👈
Tony
Зачем, у нас своя трава
Алишер Абдуллаев
у меня остался скопированная директория /var/lib/mongodb
как восстановить все в новую бд mongodb ?
Aslan
Подскажите, можно ли как-то сократить этот код? Возможно, не обязательно сохранять промежуточные вычисления в отдельные поля?
const eventsAggregation = [
{ $addFields: { createdAtHours: { $hour: '$createdAt' } } },
{ $addFields: { createdAtMinutes: { $minute: '$createdAt' } } },
{ $addFields: { createdAtHoursInMinutes: { $multiply: ['$createdAtHours', MINUTES_IN_HOUR] } } },
{
$addFields: {
createdAtTotalMinutes: {
$add: ['$createdAtHoursInMinutes', '$createdAtMinutes'],
},
},
},
{ $match: eventsQuery },
];
const events = await Event.aggregate([
...eventsAggregation,
// another code
]);
По итогу нужно только одно поле – createdAtTotalMinutes
Алишер Абдуллаев
Алишер Абдуллаев
видимо это и нужно восстановить, но через консоль пока не нашел правильного ответа
Andrey
Andrey
Алишер Абдуллаев
То есть вопроса - нет?
ну то есть остался только скопированная /var/lib/mongodb - можно ли восстановить файлы внутри в новую бд, который установил недавно ?
Andrey
Алишер Абдуллаев
Andrey
Алишер Абдуллаев
Алишер Абдуллаев
Алишер Абдуллаев
вкратце, был бд, потом она перестала запускаться, скопировал монго либ и переустановил монгодб, теперь восстановить надо
Andrey
вот тут^^^
Теперь понял, а что логи монги пишут
Andrey
Со старой и на новой
Алишер Абдуллаев
Алишер Абдуллаев
если не ошибаюсь, проблема крошилась под wired tiger
Andrey
Алишер Абдуллаев
Алишер Абдуллаев
Владислав
Привет! Подскажите, используется ли монго локально в виде файлика на линуксе? Или лучше что-то другое выбрать?
Mike
если стоит 5-я версия с компасом - можно обновиться до 6-й?
Nick
Mike
Nick
как это сделать?
https://www.mongodb.com/docs/manual/release-notes/6.0-upgrade-standalone/
Mike
(на вин 10)
Nick
(на вин 10)
по факту там должно быть: остановили сервис монги, установили 6 версию, првоерии что сервис использует новый путь до 6 версии монги, проверить что настройки путей к БД не слетели, запустить сервис и пользоваться
Mike
Mike
http://joxi.ru/l2ZKbPRClpeYPA
так показывает версию монги компас
Mike
http://joxi.ru/4AkL5KoHjvRLdr
Mike
а так через командную строку
Mike
почему это происходит?
Mike
http://joxi.ru/LmGgJPehBqnGJm
Mike
а здесь вообще третье значение
Mike
как это понимать?
Nick
потому что npm показывает версию пакета, который можно использовать в коде и его версия к самой БД отношения по факту не имеет
Nick
читайте доки в нмп по данному пакету и ченджлоги для отслеживания какие версии БД какой версией пакета поддерживаются
Mike