Anonymous
pull вообще можно заюзать
Vladimir
Добрый день такая задача есть таблица с 80к документов, прилетает из вне файл обновления этой таблицы - какой вариант обновления наиболее производительный ? обновлять через цикл очень долго ( использую с# driver
Nick
фьючами - какими?
тут хз как оно в C# в джавке обычные фьчи, в js промисы
Vladimir
task и я так понимаю имеются ввиду
Anonymous
Как правильнее будет реализовать удаление данных, если ими никто не пользуется? Почитал про expires, но он не удалить связанные с этой колекцией данные. Как вы реализуете такое?
Nick
task и я так понимаю имеются ввиду
тут советую по доке к драйверу глянуть как там асинхронно запросы делать, всетаки C# не мое поле
Nick
Как правильнее будет реализовать удаление данных, если ими никто не пользуется? Почитал про expires, но он не удалить связанные с этой колекцией данные. Как вы реализуете такое?
определить критерий "никто не пользуется" и "можно удалить", добавить нужных параметров, сделать джобу которая удаляет доки и зависимости
Anonymous
а где их пускать?
Anonymous
где должна крутится проверка
Vladimir
тут советую по доке к драйверу глянуть как там асинхронно запросы делать, всетаки C# не мое поле
да вот я использую UpdateOneAsync, но скорость 0,1-0,3 сек на запись жесть спасибо вообщем буду медитировать
Nick
а где их пускать?
на вашем серваке в виде сервиса самостоятельного или как задача для cron или еще какой другой планировщик задач
Anonymous
то есть я щас пишу сервис отдельно от моего приложения и в крон ставлю задачку на этот скрипт
Nick
то есть я щас пишу сервис отдельно от моего приложения и в крон ставлю задачку на этот скрипт
ну или в самом сервисе, тут вопрос как вам удобнее потом контролировать этот процесс. Надо смотреть по техническим возможностям, а то может у вас там проще выставить ендпоинт и его курслом из крона дергать вместо создания поноценного сервиса
Anonymous
Наверное эндпоинт легче, тогда мне нужен токен чтоб, не абы кто слал
Anonymous
Задача удалить пользователей, которые не пользуются приложением
Nick
Задача удалить пользователей, которые не пользуются приложением
а зачем? логи имеет смысл удалять, а зачем юзеров?
Anonymous
потому что приложение регает сразу пользователя
Anonymous
как только он заходит
Anonymous
и дальше он может подтвердить свою личность, тогда такого удалять не надо
Anonymous
но а те кто просто зашел, по типу ботов, они не нужны в бд
Nick
точно ли не нужны? метрики не считаете по конверсии?
Anonymous
вообще ничего не считаем
Nick
когда созреете до того чтобы считать выяснится что данных нет. Если прям так сильно охота избавляться, или это петпроджект без какихто замашек, то наверное можно и удалять. Если уже ест ьпланы на развите и коммерцию, то хотя бы куданить бекапьте то что удаляете, либо прост оперекладывая в другую коллекцию, либо выгружая в файлики и их в архивы куданить
Anonymous
ну окей, предположим не удаляю, пользователей будет 10к лежать в базе, это не скажется на производительности?
Nick
если 10к пользователей сказывается на производительности, то стоит пересмотреть структуру и запросы, условно до 1кк влияние на производительность количества записей должно быть крайне малым при нормальной структуре
Nick
ну окей, предположим не удаляю, пользователей будет 10к лежать в базе, это не скажется на производительности?
и опять же если вы задаете такой вопрос на таких объемах, то стоит пока оставить все как есть и в будущем столкнуться с проблемой производительности (если они действительно будут) и разобраться почему она возникла и как можно было ее решить, чтобы ее избежать и набраться опыта. А так преждевременные оптимизации как правило стоит откладывать до времени пока они действительно потребуются
Anonymous
просто мне казалось, что не нужно хранить данные, которые просто лежат и занимают место. Но действительно если потом захотят вести учет какой-то, то получится писос
Anonymous
через пару месяцев тогда увидим)
Cepmol
Здравствуйте, подскажите как лучше занести записи из json файлов, при этом дубликаты не вносить?
Ivan
Всем привет, не совсем по теме наверно вопрос, но все же Делал ли кто дашборд в грейлоге по монге, и если да, то, что (основные параметры, кроме слоулогов, например) можно в него включить
Jamshidjon
Ребят, а как из коллекции где есть массив, вывести саму коллекцию и плюс добавочно поле с размером того массива в каждом обьекте?
Aʙduxᴀlilᴏv ☾
Ребят как взять из коллекции последние 10 элементов
Jamshidjon
вроде так, попробуй
Jamshidjon
Ребят как взять из коллекции последние 10 элементов
https://stackoverflow.com/questions/4421207/how-to-get-the-last-n-records-in-mongodb
Aʙduxᴀlilᴏv ☾
db.foo.find().sort({$natural:1}).limit(10);
Natural что означает
Aʙduxᴀlilᴏv ☾
То есть для чего нужен
Aryn
Как в документе у поля users (словарь) найти юзера по users.user_id? Пример: { _id: ..., users: [ { user_id: 1, asd: test } ] }
Anonymous
Агрегации
Anonymous
Ребят кто может переписать Tinydb на монго?
Anonymous
db.collection("ure_collection") .aggregate([ {$project: {users}, {$unwind: "$users"}, {$match: {"users.user_id": user_id}} ])
Anonymous
~ так
Anonymous
тебе выкинет массив с одним элементом и найденым юзером
Anonymous
если нет совпадений тогда пустой массив
Nick
Как в документе у поля users (словарь) найти юзера по users.user_id? Пример: { _id: ..., users: [ { user_id: 1, asd: test } ] }
в вашем примере users.user_id : 1 - позволит выбрать все доки у которых есть такой юзер, потом можете отфильтровать либо сами либо как в примере @mxxnseat
Aryn
[RESOLVED] Подскажите пожалуйста, на скрине часть документа. Как мне обновить лишь answers?
Aryn
{$set: {users.answers: data}} ?
А, действительно так и будет
Anonymous
updateOne() "users.$.answers"
Aryn
Простите за тупость, но есть ещё кое-какой вопрос: Как из документа достать лишь users?
Anonymous
агрегации)
Aryn
updateOne() "users.$.answers"
Ну, я хоть и чуток по-другому сделал, пофиг ))
Aryn
агрегации)
https://t.me/mongodb_ru/101033 ?
Anonymous
да $project выбирает поля
Aryn
да $project выбирает поля
Хм, а другого решения нет?
Anonymous
а хотя
Anonymous
findOne({findCondition}, {users: 1})
Anonymous
ну количество ты можешь достать массив и array.length
Anonymous
либо же опять агрегациями посчитать)
Aryn
:DDD
Anonymous
АГРРЕГАЦИИИИ
Aryn
Всё же, спасибо )
Aryn
Если ид является обджекИд, тогда можете сортировать по нему. В нем содержится таймстамп
👋 Чёт немного не понял, как )) Делаю так: cursor.sort('_id', ObjectId('6160413ca815b5e891c34ef8')).limit(2) Даёт ошибку: second item in each key pair must be 1, -1, '2d', or another valid MongoDB index specifier.
Aryn
e\\/gen
Таймстамп, типо, но _id
и как это трактовать монге? как возрастающий порядок или убывающий?
Aryn
Сначала новые, потом старые
Aryn
Но, мне нужно лимит в 5 делать, потом подгружать те, которые позднее чем эти 5-ро вышли