Семен
Как я могу обновить поле isImportant у конкретного объекта в массиве? единственное что было близко это запрос которы на скрине Но этот запрос ничего не находит((
Семен
Семен
Семен
Yury
попробуй _id задачи тоже обернуть в ObjectId
Yury
Хотя вряд ли поможет, но обрати внимание, что айди родительской сущности у тебя является ObjectID, а айди в массиве - просто строка
Yury
Еще можешь глянуть в самой схеме на описание поля _id в tasks, стоит ли там тип ObjectId
Семен
Да, спасибо это я копировал значение и не заметил что при редактировании обёртка objectId исчезла
Yury
Помогите, пожалуйста
Yury
Ребят, вопрос по Монге и Nest.js У меня есть коллекция Users, а в ней есть problemAttempts.
Yury
Моя задача - чтобы при добавлении в problemAttempts через $push элемента массива, у него появлялся createdAt и updatedAt
Yury
Самое поле в схеме описано вот так
Yury
А сама схема объекта в массиве problemAttempts выглядит так
Yury
Пушу вот так
Yury
Я могу, конечно, и руками их добавить, но хочется использовать оригинальный механизм добавления timestamp из Mongo
Dmitry
Во первых, у mongo нет такого механизма и это делает mongoose
Dmitry
А, во вторых, у тебя не правильно схема построена
Андрей
Коллеги, всем привет! Я совсем новичок в теме, обсуждаемой в данном чате. Мне интересно, а стоит ли вообще учить МонгоДБ в целом? Какие явные преимущества она дает перед другими Базами Данных. Рад знакомству))
Андрей
Но вашу мысль, я уловил.
Dmitry
Ну гугл гуглом, а люди людьми. Я больше доверяю людям, чем поисковику
Монга нужна где мало связанных данных, тупо как статика
yopp
Когда есть структура, но нет четкой схемы
yopp
Что за странный вопрос? Стоит ли изучать эту БД зависит от твоих целей. На вопрос какие преимущества есть у этой бд тебе ответит гугл
У нас профессиональное сообщество. Относитесь к участникам с уважением. Плюс у нас не принято посылать «в Гугл»
yopp
Монга нужна где мало связанных данных, тупо как статика
Не соглашусь. Монга позволяет работать со связанными данными, примерно на том же уровне что и реляционные субд
yopp
Из существенных отличий это отсутствие ручных блокировок, хранимых процедур и триггеров
yopp
Остальное плюс-минус как везде
Dmitry
Не соглашусь. Монга позволяет работать со связанными данными, примерно на том же уровне что и реляционные субд
Это да, поэтому и указал,в первую очередь, что мало связанные данные, но если у человека сильно связанные данные либо хочется NF-*, то ему лучше посмотреть в сторону SQL
yopp
Если сильно связанные данные то смотреть стоит на графовые хранилища ;)
yopp
Табличные СУБД на практике плохо работают со связями с больше чем одним уровнем
Андрей
Dmitry
кроме группы, которая поет ничего не смог найти. Это сокращение от чего-то ? NF
NF - Нормальная форма. Всего, там 6 уровня и 2 частных случая (могу ошибаться т.к. очень давно изучал)
Dmitry
normal form, это искать получается надо?
NF SQL напиши и там кучу результатов будет, но для NoSQL это слабо применимо. Это стоит почитать, только для общего развития и понимания
Менеджер
Есть задача: сгруппировать статистику по ключу за 2 периода. Смотрите: я вытягиваю все записи, делю их на 2 $facet, в первом (period_a) группирую по ключу, суммирую нужные показатели, лимитирую по дате, во втором (period_b) - всё так же как и в первом, только за другой период. От у меня есть 2 пайплайна. Очевидно, что в первом могут быть записи, которых нет в другом (например, статистика за прошлый период есть, за текущий - нету) и наоборот. Мне нужно получить такой результат: [ [{по ключу X за период а}, {по ключу X за период b}], [{по ключу Y за период а}, {по ключу Y за период b}] ] Если я сделаю мерж двух пайплайно через $concatArrays, потом по полученному списку опять сделаю $group, то у меня в массивах может быть по 1 элементу. То есть статистика была только за первый период в пайплайне первом. А как мне на уровне mongo сделать проверку, и поставить пустой объект, если за один из периодов нету данных? Задача, чтобы в каждом массиве было строго 2 объекта, данные за первый период и второй.
Alexandrr
Есть задача: сгруппировать статистику по ключу за 2 периода. Смотрите: я вытягиваю все записи, делю их на 2 $facet, в первом (period_a) группирую по ключу, суммирую нужные показатели, лимитирую по дате, во втором (period_b) - всё так же как и в первом, только за другой период. От у меня есть 2 пайплайна. Очевидно, что в первом могут быть записи, которых нет в другом (например, статистика за прошлый период есть, за текущий - нету) и наоборот. Мне нужно получить такой результат: [ [{по ключу X за период а}, {по ключу X за период b}], [{по ключу Y за период а}, {по ключу Y за период b}] ] Если я сделаю мерж двух пайплайно через $concatArrays, потом по полученному списку опять сделаю $group, то у меня в массивах может быть по 1 элементу. То есть статистика была только за первый период в пайплайне первом. А как мне на уровне mongo сделать проверку, и поставить пустой объект, если за один из периодов нету данных? Задача, чтобы в каждом массиве было строго 2 объекта, данные за первый период и второй.
https://www.mongodb.com/docs/manual/reference/operator/aggregation/cond/ либо на уровне кода проверки писать, решения всего 2
Менеджер
https://www.mongodb.com/docs/manual/reference/operator/aggregation/cond/ либо на уровне кода проверки писать, решения всего 2
ага, спасибо но $cond кажется нельзя использовать в $group Я сначала сделал мерж двух пайплайнов, потом этот список $group и например в поле "array" делал $push элемента. И теперь я ожидаю, что в поле array всегда будет 2 элемента (за первый и второй период). Как потом пройтись по всех коллекция, заглянуть в array, посмотреть сколько и какие там элементы и если только один, то сделать $push пустого объекта
yopp
Спасибо!) да, я для этого и хотел почитать, чтобы суть понимать.
Можно на кейсах посмотреть какие паттерны работы с монгой есть: https://www.mongodb.com/blog/post/building-with-patterns-a-summary
Alex
Ребят, как можно реализовать вот, что: Есть ObjectId нужной записи в БД. Нужно взять её и 100 последующих записей. Как бы вы решили этот вопрос?
Yury
миллион записей дергать ради ста?)
Другого способа не знаю.
Yury
Хотя можно предположить, что записи идут последовательно друг за другом, тогда можно достать запись с искомым Id
Yury
А потом идти по ближайшему createdAt
Andrey
так вроде, отключаете в настройках mongo авторизацию и все
Andrey
Не знаю, укажите ip вашего интерфейса м подключайтесь, там же в настройках.
Alexander
Попробуйте телнетом подключиться. Выглядит, как недоступный порт.
Nick
авторизациию включили в конфиге?
Nick
Только если есть уязвимости в коде самой монги. Отслеживайте патчи их закрывающие и оперативно обновляйтесь
Alexandrr
в чем проблема создать пользователь_2 в системе и с него попробовать получить доступ к бд? видимо, к учётке системы привязывается пользователь, как в шиндошс
Eleonora
Добрый вечер , подскажите , пожалуйста , делаю тестовое на React-Native + простенький backend , мне нужно подключить mailzak ( или возможно кто -то что -то другое посоветует ) … использую mongodb через clever-cloud и не могу понять откуда в таком случае uri вытащить .
flyingshine
что такое backand?
backend наверное
Eleonora
Да , server
Zaur
коллеги, подскажите как в миддлваре schema.post('deleteOne', async (document) => { console.log('post delete', document); }); получить документ, который был удален ? я получаю информационный объект { acknowledged: true, deletedCount: 1 } а хочется получить сам документ
Artem
Может конечно есть необходимость именно ssh из python, но я недавно решал на Java подключая ssh и мапя на локальный порт. А в джаве уже указывал localhost:смапленный_порт
Zaur
сделать получение этого дока перед удалением, гденить его прихранить и достать в хуке поосле удаления
Да, я так и сделал, работает. Хранить не обязательно, если удалять методом doc.deleteOne(), тогда этот документ прилетает в колбеке хука, как я и хотел.
Alexandrr
выкинуть порт наружу у монги, взять стандартную либу шшс путхона и законнектиться, в чём проблема?
Zaur
В колбеке пост хука?
Да, вот так подписываюсь: schema.post('deleteOne', { document: true }, (doc) => { console.log(doc) });
john
hi
john
как фильтровать?
john
Alexandrr
😅жестко
Alexandrr
возьми обычную либу стандартную
Andrey
Простите, но я из ваших текстов не очень понятно, что вы делаете и в чем проблема. Зачем нужен ssh? Монга «снаружи» не доступна?