Max
https://www.mongodb.com/docs/manual/reference/operator/aggregation/filter/#examples
У них все примеры на сравнение с примитивами, нет более сложных примеров для запроса, а в Mongoose и вообще аналога не нашёл, ну или у меня глаза уже сонные, видимо.
Max
.aggregate([ { $project: { _id: 0, city: 1, items: { $filter: { input: "$items", as: "item", cond: { $eq: ["$$item.name", "name 3"] } } } } } ])
Ладно, завтра попробую, не шмог я сейчас, не получилось достать документ по _id и проверить у него нужное поле в массиве объектов)
Max
Тип данных должен совпадать
С чем? Я же достаю документ, а у него уже обращаюсь к полю.
Max
С чем? Я же достаю документ, а у него уже обращаюсь к полю.
Если чейнить после find или findOne, то .aggregate is not a function
-
С чем? Я же достаю документ, а у него уже обращаюсь к полю.
Вы выше написали, что match не сработал и ещё вы писали про _id. Чтобы найти документ по полю _id используя $match, который доступен в aggregation, на вход должен быть передан objectId
Max
const aggregate = MyModel.aggregate([{ $match: { _id: 4223523523 } }]); - чем не вариант?
-
const aggregate = MyModel.aggregate([{ $match: { _id: 4223523523 } }]); - чем не вариант?
Тем, что по умолчанию там используется тип данных ObjectId
Max
Тем, что по умолчанию там используется тип данных ObjectId
Т.е., если я в Mongoose выполняю .findOne({ _id: 639b536343185cb6430c1269 }) и .aggregate([{ $match: { '_id': 639b536343185cb6430c1269 } }]), то для aggregate мне нужно вызвать mongoose.Types.ObjectId('639b536343185cb6430c1269')?
Max
Да
Для меня не очевидно было и в доке не нашёл, спасибо)
-
Если ничего не поменялось, то mongoose не поддерживает свою реализацию и ничего не делает для этого метода. Всё управление передается драйверу mongodb
Max
Да
нашёл в доке
Dj
как можно скрыть эти данные когда get запрос идет ?
of Astora 𒉭
как можно скрыть эти данные когда get запрос идет ?
или можешь сделать Model. find({}, '-email -passwordHash')
Dj
.select()
имеется ввиду это ?
of Astora 𒉭
имеется ввиду это ?
не, попробуй второй что скинул
Dj
пока что нет, я не знаю куда прописывать, у меня почти нет опыта с монго и бекендом
Dj
так выглядит запрос у меня
of Astora 𒉭
так выглядит запрос у меня
UserModel.find({}, "-email -passwordHash")
of Astora 𒉭
await не убирай
Dj
да, вроде работает нормально, спасибо
Dj
да
Dj
of Astora 𒉭
Kenya-West
Всем привет! Пользуюсь MongoDB Atlas - ну, той облачной БД. На Free tier. Пет-проект в бою, но записей в день 2-3 добавляется всего, нагрузки, считай, ноль. Мне не отключат мой экземпляр БД? Когда, через сколько? Бекапы делаю, да. Читал их фак, но там фак мой моск, всё расплывчато и нипанятнааа
yopp
Всем привет! Пользуюсь MongoDB Atlas - ну, той облачной БД. На Free tier. Пет-проект в бою, но записей в день 2-3 добавляется всего, нагрузки, считай, ноль. Мне не отключат мой экземпляр БД? Когда, через сколько? Бекапы делаю, да. Читал их фак, но там фак мой моск, всё расплывчато и нипанятнааа
Насколько я знаю, отключают только неактивные кластеры, к которым нет подключений в течении 30 дней. Не смотря на то, что кластер отображается как «paused», его ещё какое-то время можно ре-активировать просто подключившись. Но сколько так это будет работать гарантированно никто не может. На практике 90 дней вроде как живут 🙂
Andrey
а какой несут смысл закрепленные сообщения в этом канале?
Kvhqm
да
Это корректная инфа о том какая текущая версия, ссылка на доку... в общем там все написано:)
Andrey
Это корректная инфа о том какая текущая версия, ссылка на доку... в общем там все написано:)
не могу просто понять, тут 6.0.7, на сайте 6.0.9 и 7.0.1, на докер хаб тоже
Andrey
Тебя сильно это волнует? :))
так я поэтому вопрос и задал в чем смысл? может я чего-то не понимаю и крайняя стабильная 6.0.7 или это версия драйвера?
Nick
так я поэтому вопрос и задал в чем смысл? может я чего-то не понимаю и крайняя стабильная 6.0.7 или это версия драйвера?
на сайте монги вся инфа само собой приоритетна. В запиненном сообщении просто немного ссылок и иногда важные моменты как это было с багом инсталляции что монга после обновы не запускалась.
Andrey
^ @andreddit вот тут было про багу запуска
хах, а я снес виртуалку с 9м даебаном и накатил 12й, докер, монгу с 4.2.2, решил рубить по полной 😀
Null
7.0.1 (Sep 5) ◦ 6.0.9 (Aug 14) ◦ 5.0.20 (Aug 14) 🔥 Вернулся плейграунд: play.db-ai.dev 🔥 Вышел новый релиз 7.0. Что нового? 🔥 Вышли обновления: 7.0.1, 6.0.9, 5.0.20 и 4.4.20 • Документация • Официальный курсы: MongoDB University • 🧑‍🔧 Консультации и поддержка MongoDB от 2190€ в месяц: @dd_bb Stable: 7.0.1 (Sep 5) ◦ 6.0.9 (Jun 28) Bugfix: 5.0.20 (Aug 14, ☠️ Oct '24) Legacy: 4.4.24 (Aug 23, ☠️ Feb '24) ☠️ 4.2.24 (Apr '23), 4.0.28 (Apr '22), 3.6.23 (Mar ’21), 3.4.24 (Jan ‘20)
Andrey
Почему был 9 дебиан ?
я запустил проект 4 года назад, настроил сварм, и это работало бесперебойно в части инфры, находились баги в приложении, но их хотфиксил... сейчас понял, что хочу ещё один проект и решил поставить базу в отдельный сварм стэк, ну и посыпались системные ошибки, на флагах и keyfile (насколько понял надо использовать его при хостинге двух монг на тачке) разрулить не получилось. Полез обновлять всё и понеслось, знаете же как трудно остановиться, когда шашка в руках
Viktar
Добрый день, есть реплика примари, секондари и арбитр. Надо ли арбитр писать в конекшн стринг?
yopp
Добрый день, есть реплика примари, секондари и арбитр. Надо ли арбитр писать в конекшн стринг?
Не обязательно. Если ноды с данными не доступны, то пользы от арбитра в сид-листе практически нет
yopp
Я не помню точно, но помоему арбитры всё равно могут анонсировать свой cluster view и единственный кейс когда в этом есть смысл, если в rs.config добавились ещё ноды, например как часть процедуры при восстановлении при фатальном отказе. Но опять-же, в таких случаях надежнее обновить сид-листы у клиентов
Андрей
Привет. Есть кто успешно использует PBM для PITR?
Андрей
Привет, мы используем
Ресторю физ бэкап с оплог слайсами в другое окружение. Не вижу прогресса. describe-restore показывает статус running и всё по сути, ничего полезного. Да и медленно что-то очень идёт, судя по тому, как прирастают мегабайтики на файле коллекции.
Андрей
Так понимаю, что numDownloadWorkers стоить ставить значительно больше числа ядер и downloadChunkMb побольше, чем в дефолте.
Асель
Ресторю физ бэкап с оплог слайсами в другое окружение. Не вижу прогресса. describe-restore показывает статус running и всё по сути, ничего полезного. Да и медленно что-то очень идёт, судя по тому, как прирастают мегабайтики на файле коллекции.
я для себя нашла вариант смотреть логи агента на ноде с primary, где идет восстановление journalctl -u pbm-agent.service -f но это для логического бэкапа, физ бэкап не смотрела у перконы он же не работает с комьюнити версией монги, я правильно помню? а то вдруг мы можем перейти, было бы неплохо)
Андрей
У меня перконовский дистр последний и последний pbm. В логе агента тоже ничего полезного - действие copy конкретного файла и всё.
Андрей
Логический бэкап - такая себе затея на больших коллекциях.
Асель
тогда не знаю, чем помочь для лог бэкапа прям виден был процент восстановления
Асель
Логический бэкап - такая себе затея на больших коллекциях.
понимаю как вам перконовский дистр? есть проблемы какие-то?
Андрей
Та нет проблем. По сути та же ванильная монга, приправленная своим аудитом, возможностью закерберизоваться/заЛДАПиться и как раз физический питр меня интересовал.
Андрей
А PBM умеет в PITR на ванильной монге?
Асель
да, умеет у нас стоит обычная комьюнити версия и pbm, логический бэкап
Андрей
А как? Ему ж нужны свои кастомные коллекции в админской базе, куда трекается вся активность агентов и сами бэкапы.
Асель
да, но в чем проблема? это коллекции создаются командой pbm config
Асель
вся инфа в них есть
Nick
да, умеет у нас стоит обычная комьюнити версия и pbm, логический бэкап
если не секрет, какой объем данных логически бэкапите? ГБ и в документах
Асель
если не секрет, какой объем данных логически бэкапите? ГБ и в документах
у нас не один кластер в среднем до 50 ГБ и там нет никаких проблем но вот один кластер дорос до 5ТБ, и я пока не знаю, что с ним делать это очевидно проблема, тк, когда он весил 1ТБ восстановление шло часов 5
Асель
вот теперь задумаюсь на тему перконовской монги
Андрей
да, умеет у нас стоит обычная комьюнити версия и pbm, логический бэкап
pitr: enabled: true oplogOnly: true Дальше логический фул и оплог слайсы сам делает каждый заданный интервал или инкременталки делаете?
Асель
pitr: enabled: true oplogOnly: true Дальше логический фул и оплог слайсы сам делает каждый заданный интервал или инкременталки делаете?
pitr: enabled: true oplogSpanMin: 10 фулл запускается кроном, и каждые 10 минут оплог сохраняется автоматически