of Astora 𒉭
привет всем как в монгузе добавить в updatedAt дату в случае если у меня срабатывает if только один раз в день
of Astora 𒉭
было так чтобы 1 раз он добавлял дату раз в день учитывая его createdAt
Undefined
Здравствуйте. Подскажите, как в mongodb реализовать пересичение? Есть два массива и из них нужно вывести третий: arr1 = [1,2,3,4,5] arr2 = [1,2,3] arrResult = [4,5] arrResult должен калькулироваться на основании первых двух. В нём должны быть только те элементы которые есть в arr1 и нету в arr2
Undefined
Документ лежит в коллекции users и выглядит так: { _id: ObjId, userInfo: { ...someUserInfo }, items: { allItems: [1,2,3,4,5], activetedItems: [1,2,3], activeItems: [4,5] } }
Undefined
Можно ли как-то поле activeItems держать в динамическом состоянии и напрямую не определять?
Undefined
Нет, динамически считать значение activeItems
Vladyslav
Нет, динамически считать значение activeItems
ну так на беке добавьте в модель вычислямое свойство и бд вам даже не нужна
Undefined
Т.е. когда я делаю fetch c базы, то в результирующем объекте дописать новое поле, которого нету в базе?
Undefined
Так думал, но думал есть динамические калькуляции в бд
Undefined
Где-то видел такое
Undefined
да
Это оптимальный способ? В бд нету лучше инструментов
Undefined
Ладно, понял
Undefined
Спасибо
Vladyslav
если логика вашего поля берет данные только из этой модели - то да. Если она еще куда-то должна лезть, тут нужно уже смотреть пример
Nick
Это оптимальный способ? В бд нету лучше инструментов
Сколько таких предметов может быть? Напрямую можно использовать https://www.mongodb.com/docs/manual/reference/operator/aggregation/setDifference/
джигит иван
Всем привет, а можно сделать в монго так, чтобы когда коллекция пополнилась, появлялся там новый объект, то приходило какое-то уведомление или что то типа того? Ну в общем когда в db что то изменялось
Dmytro
Коллеги, подскажите как лучше сделать систему лайков для постов, именно как хранить эту информацию? Отдельно для каждого лайка, или как то в массиве у пользователя/поста?
yopp
Коллеги, подскажите как лучше сделать систему лайков для постов, именно как хранить эту информацию? Отдельно для каждого лайка, или как то в массиве у пользователя/поста?
В отдельной коллекции. Думаю что паттерн bucket подходит для такой схемы https://www.mongodb.com/blog/post/building-with-patterns-the-bucket-pattern https://www.mongodb.com/blog/post/paging-with-the-bucket-pattern--part-2
yopp
Вместо температуры — id пользователя который поставил лайк Сами бакеты по каждому посту
­
всем доброго дня, подскажите пожалуйста кто сталкивался: есть документ ( папка) с массивом вложенных документов ( файлы )... делаю агрегацию фильтруя все вложенные документы... задача получить только те папки в которых есть отфильтрованные файлы... а я получаю все папки в том числе с пустым полем file... нужно ли вешать ещё один фильтр или есть более лаконичный вариант ?) [ { "_id": "63983954ab6422096250c8e7", "files": [ { "originalname": "2022-12-07_21-56.png", "mimetype": "image/png", "size": 373896, "date": "2022-12-13T08:48:06.217Z", "shared": false, "uploadedByRole": "user", "isReaded": false, "_id": "63983c46e599121c8fdd6bb0", "__v": 0 } ] }, { "_id": "63983c54e599121c8fdd6bb5", "files": [] }, { "_id": "63983c54e599121c8fdd6ba2", "files": [] } ]
Nick
всем доброго дня, подскажите пожалуйста кто сталкивался: есть документ ( папка) с массивом вложенных документов ( файлы )... делаю агрегацию фильтруя все вложенные документы... задача получить только те папки в которых есть отфильтрованные файлы... а я получаю все папки в том числе с пустым полем file... нужно ли вешать ещё один фильтр или есть более лаконичный вариант ?) [ { "_id": "63983954ab6422096250c8e7", "files": [ { "originalname": "2022-12-07_21-56.png", "mimetype": "image/png", "size": 373896, "date": "2022-12-13T08:48:06.217Z", "shared": false, "uploadedByRole": "user", "isReaded": false, "_id": "63983c46e599121c8fdd6bb0", "__v": 0 } ] }, { "_id": "63983c54e599121c8fdd6bb5", "files": [] }, { "_id": "63983c54e599121c8fdd6ba2", "files": [] } ]
Почитайте внимательно что делает фильтр - он меняет содержимое массива. Если вам нужен поиск по массиву то это в $match секции надо указать условие поиска
­
Почитайте внимательно что делает фильтр - он меняет содержимое массива. Если вам нужен поиск по массиву то это в $match секции надо указать условие поиска
так мне и нужно изменять содержимое массива отфильтровывая то что не подходит по условию... вопрос то в другом. как после фильтрации простым способом убрать (папки) с пустыми массивами { "_id": "63983c54e599121c8fdd6ba2", "files": [] }
lmn
всем доброго дня, подскажите пожалуйста кто сталкивался: есть документ ( папка) с массивом вложенных документов ( файлы )... делаю агрегацию фильтруя все вложенные документы... задача получить только те папки в которых есть отфильтрованные файлы... а я получаю все папки в том числе с пустым полем file... нужно ли вешать ещё один фильтр или есть более лаконичный вариант ?) [ { "_id": "63983954ab6422096250c8e7", "files": [ { "originalname": "2022-12-07_21-56.png", "mimetype": "image/png", "size": 373896, "date": "2022-12-13T08:48:06.217Z", "shared": false, "uploadedByRole": "user", "isReaded": false, "_id": "63983c46e599121c8fdd6bb0", "__v": 0 } ] }, { "_id": "63983c54e599121c8fdd6bb5", "files": [] }, { "_id": "63983c54e599121c8fdd6ba2", "files": [] } ]
не по теме спрошу но что это за язык лютый который в константу через авейт кладет результат запроса? … который явно не константа) дичь какая то)
­
не по теме спрошу но что это за язык лютый который в константу через авейт кладет результат запроса? … который явно не константа) дичь какая то)
почему не константа ?) в данном инстансе это как раз и есть константа которую я получаю после запроса к БД, хз в чем тут проблему увидели) изменить полученный результат хранящийся в константе я не смогу... UPD: точнее смогу, но это совсем другая история)
­
Хотя все еще склоняюсь что вам нужна матч секция и тогда такой проблемы просто не будет
реально затупил жёстко ) match перед фильтром решил все проблемы, спасибо
lmn
JS
Ясно. Боже упаси знач) от жс) голова взорвется от таких конструкций
Emil22878
гайс могу ли я из параметров брать title и вставить в sort ?? или мне нужно всегд разный sort писать ?
Yaroslav
гайс могу ли я из параметров брать title и вставить в sort ?? или мне нужно всегд разный sort писать ?
Тебе придется валидацию для данного параметра делать, что это поле есть в документе
Aleksey
Подскажите люди добрые. Сервер репликасета с монгой (старенькой 3.4) ушел в статус ROLLBACK. Убрал все запросы с него, убрал приоритеты выбора его - появился "прогресс" роллбека. но вот по факту не понятно - есть какойто прогресс или просто он повис и оживать не планирует? Второй сервер с репликой на медленных дисках, не вывозит нагрузку.
Sergey spbsite
это ж к девопсам, не?)
Aleksey
это ж к девопсам, не?)
я надеялся что в этом чате не только программисты но и эксплатация
Sergey spbsite
я надеялся что в этом чате не только программисты но и эксплатация
у них свое же, тут пишут как хомячить с монгой)
Sergey spbsite
какая фс кстати?
Sergey spbsite
xfs?
Aleksey
xfs да
Aleksey
у них свое же, тут пишут как хомячить с монгой)
а своё - это в какой чат обратиться не подскажете?
Sergey spbsite
@it_chats
Aleksey
чтото там ничего похожего
Aleksey
@dd_bb случайно не подскажете в каком направлении отправиться на поиски?
Null
Добрый день Подскажите, насколько в монге pivot table антипаттерн при связи many-to-many? Решение с дублированием данных мне не очень нравится. А данные нужны с двух сторон. Какие вообще существуют лучшие практики для такой задачи?
Null
Есть коллекции игроки и команды. Игрок может быть в нескольких командах. Нужно читать игрока с командами, в которых он состоит, и команды с игроками
Nick
ну стандартная sql-практика
вопрос остался тот же, pivot нужен вроде как для поворачивания данных, но это как правило задача фронта а не БД
Null
я имею в виду коллекция: player_team teamId playerId
Null
но я знаю, что это что-то около антипаттерна в nosql, вот поэтому и интересуюсь, какие есть альтернативные решения
Nick
но я знаю, что это что-то около антипаттерна в nosql, вот поэтому и интересуюсь, какие есть альтернативные решения
альтернатива указывать id команды у игрока или наоборот, по сути зависит отолько от того как вы будете выборки делать и как работать с данными - способ хранения подстраивается под работу
Null
альтернатива указывать id команды у игрока или наоборот, по сути зависит отолько от того как вы будете выборки делать и как работать с данными - способ хранения подстраивается под работу
я понял. тогда остаётся только указывать id с двух сторон, так как выборки нужны и там и там. непонятно до конца только, как тогда обеспечивать целостность данных
Nick
я понял. тогда остаётся только указывать id с двух сторон, так как выборки нужны и там и там. непонятно до конца только, как тогда обеспечивать целостность данных
в коде, целостность данных лежит полностью на коде - все проверки должны делаться явно, а на стороне бд остаются только уникальные индексы и поддержка транзакций
Null
если, к примеру, сделаю team c memberIds, то тогда очень долго будут выполняться запросы на player c его teams
Null
а данных много, потенциально миллион+ документов
Null
это очень мало
да, но хватит для того, чтобы замедлить респонс юзерам из-за неэфективных кверей
Null
не знаю еще. я на этапе проектирования. имеется в виду, что для массивов нельзя сделать индексы, и тогда выходит фулскан что ли?
Nick
да, но хватит для того, чтобы замедлить респонс юзерам из-за неэфективных кверей
не пытайтесь это предугадать, когда появится потребность будете оптимизировать. По вопрсоам видно что опыта в монге нет, а значит как бы вы ни сделали всеравно будете переделывать
Null
можно
можете плиз подсказать какие-то источники, где можно об этом почитать? и насколько это хорошая практика?
Null
имеется в виду, что монга уже и используется. просто вот я залетел на такой проект
Nick
имеется в виду, что монга уже и используется. просто вот я залетел на такой проект
понятно, тогда комментарий тот же - делайте как делается, всеравно потом передалете когда поймете что именно вам требуется, заложите время на это в будущем
Alexandrr
имеется в виду, что монга уже и используется. просто вот я залетел на такой проект
почему джун вообще занимается какими-то оптимизациями?
Null
как обычно, токсичное сообщество, где все охуенные синьоры. я не джун
Nick
почему джун вообще занимается какими-то оптимизациями?
не надо так говорить, это даже хорошо что доверяют такие вещи делать, по другому опыта не получить