Евгений
на всякий случай)
Arsen
вынесети из компонента запросы
Arsen
не надо так делать может потом много багов вылезти))
Евгений
хорошо
Arsen
https://www.google.com/amp/s/m.habr.com/ru/amp/post/529950/
Arsen
лучше старайтесь избегать их
Евгений
О, спасибо
..
привет, было ли у кого что при установки монго не создается файл ?
..
из-за этого не могу подключится к локальной сети , пробовал запустить Mongod , не помогло ..
..
проблема такая же, но ответа в разных форумах не нашел .
Аналоговнет
по jwt токенам можно вопросы тут бросать,или есть отдельный какой-то чат?
Dmitriy
Коллеги, подскажите пожалуйста такой момент. У меня есть 10 пользователей, у каждого пользователя есть массив из N количества items У нескольких пользователей items могут пересекаться. Например item _id 10 может быть у пользователя 1, 4, 8. Что в таком случае лучше всего сделать? 1 - Вытащить всех пользователей, через map в js вытащить все items всех пользователей, выбрать уникальные и сделать второй запрос в таблицу items и вытянуть все Итемы и потом в коде уже вручную пройтись по каждому пользователю и в массиве вместо _id итема поставить объект через функцию find по полученому массиву обьектов items 2 - Сразу делать lookup и вытаскивать сразу items ? Какой вариант будет более производительней ?
Dmitriy
И еще вопрос. У меня есть 50 записей. 10 из них мне нужно обновить определенные поля, при этом у каждого из этих 10 нужно установить свое значение. Можно ли это как то одним запросом сделать?
Максим
#вопрос Недавно изменял название поля во всех документах и немного промахнулся, в некоторых документах удалил старое поле с данными и новое не добавил. В общем потерял данные. Есть ли способ откатить updateMany? ( Если Бэкапа нет)
Максим
Проблему я решил, данные дублировались. Но вот на будущее хотелось бы знать. Я очень расстроился когда понял что натворил 😁
Максим
База сингл нода.
Dmitriy
Ну я с фронта присылаю такой массив например {_id: 123, value: 50}, {id:321, value 60}
Максим
Ну я с фронта присылаю такой массив например {_id: 123, value: 50}, {id:321, value 60}
updateMany. В фильтре использовать $in с массивом ид. Как сматчить ид с вэлью не знаю, но думаю там есть такое. Сейчас попробую поискать в доке.
Dmitriy
Ну это и так понятно, а вот как с Матчить в этом и есть вопрос)
Максим
Ну это и так понятно, а вот как с Матчить в этом и есть вопрос)
пока не нашёл. Будем ждать ответ от более опытных.
Максим
Ну это и так понятно, а вот как с Матчить в этом и есть вопрос)
есть ещё такое https://docs.mongodb.com/manual/core/bulk-write-operations/ если правильно понимаю, это один запрос
Dmitry
Добрый день, подскажите как организовать хранение вот такой информации в монго? На данный момент у меня такая иерархия, как вы считаете - это уместно?
Dmitry
Dmitry
Ilya
есть вот такой код, возможно ли его реализовать агрегациями? что делает этот код: по тэгам нужного артикля ищет пересечения с другими артиклями, каждое совпадение даёт +1 к счётчику
Pt. Loki
доброго времени. риторический частично вопрос. что эффективней по процессору mongodb или mysql при нескольких таблицах с пользователями? логин, пароль, timestamp, куки одна таблица, вторая профиль, третья авторизация с всякими счетчиками доступа. имеется 12к пользователей в пике, очень много цп ест mysql. интерес именно в логике - выгоднее ли использовать mongodb если 1 таблица из трех плавающая (не все поля заполнены обязательно) а вторая часто обновляется (счётчики). индексы понятное дело везде есть. я нуб если что.
Pt. Loki
2кк пользователей.
Dmitriy
сразу лукап
А за счет чего будет производительней?
Nick
И еще вопрос. У меня есть 50 записей. 10 из них мне нужно обновить определенные поля, при этом у каждого из этих 10 нужно установить свое значение. Можно ли это как то одним запросом сделать?
одельные апдйты на каждое разное значение которое надо засеттить, а если есть такие что дял нескольких идентификаторов надо установить одно и тоже значение, то как сказали выше задать их через $in
Nick
А за счет чего будет производительней?
один запрос полностью на стороне базы
Nick
есть ещё такое https://docs.mongodb.com/manual/core/bulk-write-operations/ если правильно понимаю, это один запрос
это множество запросов, сгруппированных в один "пакет" (bulk), но выполняются они независимо друг от друга, соответственно любой из них может сфейлиться и надо еще понять какой из них сфейлился и на перепосылку послать - вообщем нужно уметь работать с этой штукой
Nick
есть вот такой код, возможно ли его реализовать агрегациями? что делает этот код: по тэгам нужного артикля ищет пересечения с другими артиклями, каждое совпадение даёт +1 к счётчику
updateMany с $in списком тегов в условии с $inc для инкремента если счетчик на уровне статьи, если под каждым тегом надо посчитывать
Pt. Loki
сложно сказать, если сами запросы и структура данных останутся по сути те же то и проблемы те же будут. Но в любом случае это проще явно протестить, если есть возможность залить данные и примерно туже нагрузку подать
вот и интерес -вроде по силиконовым (искусственным) тестам mongodb проигрывает, но блин она вроде жрёт больше памяти но меньше цп на индексном поиске. а времена когда я дебагал скомпиленное на уровне драйвера под ос уже прошли). отсюда и опыта живого спрашиваю. благодарю, вдруг ещё напишет кто
Nick
сложно будет делать выборки по второму уровню вложенности массивов testCases.ewi, если это не требуется, то то должно быть норм. Основной момент - готовьте структуры под выборки, которые планируется делать
George
Привет Подскажите плиз как такое делать только на go? https://docs.mongodb.com/manual/reference/method/cursor.noCursorTimeout/#mongodb-method-cursor.noCursorTimeout MongoDB 4.4.2 Community go.mongodb.org/mongo-driver v1.5.1 Ожидаю что в for будет по мере получения данных приходить данные. Курсор завершается Что делаю не так? session, _ := mongoClient.Database("db1").Client().StartSession() defer session.EndSession(Ctx) opts := options.Find() opts.SetNoCursorTimeout(true) opts.SetSort(map[string]interface{}{ "created_at": -1, }) cond := map[string]interface{}{ "group": "foobar", } iter, err = session.Client().Database("db1").Collection("entries").Find(Ctx, cond, opts) if err != nil { zap.L().Panic("Failed open cursor", zap.Error(err)) } for iter.Next(Ctx) { entry := models.Entry{} if err := iter.Decode(&entry); err != nil { zap.L().Error("Failed decode received entry", zap.Error(err)) continue } zap.L().Info("Received entry", zap.Any("entry_props", entry.EntryProps)) }
George
Посмотрите исходники mongoexport из mongo-tools на github
А что вы конкретно подсвечиваете? Посмотрел исходники. На первый взгляд не выдлядит что это какая то подписка на коллекцию.
George
> https://docs.mongodb.com/manual/reference/method/cursor.noCursorTimeout/#mongodb-method-cursor.noCursorTimeout Либо я не правилььно интерпретирую эту фичу? Подписка на изменения из коллекции по условию. В не закрываемом курсоре будут падать новые документы удовлетворяющие условие
George
Нет, похоже не умею готовить эту фичу Еще раз на свежую голову посмотрел доку к функции Next у курсора > Next blocks until a document is available... Бросьтесь плиз ссылкой на проект где используются Next блокирующий (вестимо через findOpts.SetNoCursorTimeout(true)) Глаз замылился не пойму что не так в моем случае
germon
Добрый день, пытаюсь связать две коллекции: города и офисы. Офисы ссылаются на id города. Не могу понять верно я делаю или нет. db.cities.insert({"_id":"Almaty" ...}) db.offices.insert({... , city: "Almaty"})
germon
есть еще несколько документов в этих двух коллекциях, хочу их связать тоже, например db.cities.insert({"_id": "Nursultan", ...}) db.offices.insert({..., city: "Nursultan}) Все я делаю правильно и если да, есть ли способы проще это делать? Чтобы немного автоматизировать
Google
Всем привет можете помочь в Mongodb v4.0.10 не работает $size КАК ИСПРАВИТЬ ?
Google
а как можно на VPS обновить версии монго без потерии данный ?
yopp
у вас много данных?
Google
Да
Google
как можно обновить ?
Google
что бы не было проблемы
yopp
Да
много это сколько?
yopp
самый безопасный способ это mongodump -> mongorestore
Google
300 mb
Google
проект много там
yopp
300 мб это очень немного данных
Google
есть способ обновить или надо удалить
yopp
https://docs.mongodb.com/v4.2/release-notes/4.2-upgrade-standalone/
yopp
и потом https://docs.mongodb.com/manual/release-notes/4.4-upgrade-standalone/
Usein
Привет, делаю интернет-магазин одежды. Появился вопрос, как мне реализовать группировку одинаковых товаров (но с разными цветами). Их по названию товара обобщать или как?
Ilya
категории
Andrey
Всем привет, получаю из бд одного пользователя, в виде объекта, но как сделать так, чтобы я получал объект без определенного свойства внутри него ?
Andrey
Допустим есть _id, login, password
Andrey
А хочу получить только айди и логин
Sula
Ребят, есть коллекция продуктов, в которой содержится массив категорий и нужно связать в виде префиксного дерева связи между этими категориями
Viktar
А хочу получить только айди и логин
https://docs.mongodb.com/manual/tutorial/project-fields-from-query-results/
Sula
К примеру, вот категории одного документа и снизу вверх проходит индексация, 4 категория главная от нее зависит 3,а от 3 - 2 и тд
Sula
Второй документ содержит такие же категории и должны выстроиться связи айдишек таких же
𝚂𝚑𝚞𝚔𝚑𝚊
А хочу получить только айди и логин
В модели укажи { password: { … select: false } }
𝚂𝚑𝚞𝚔𝚑𝚊
В модели укажи { password: { … select: false } }
Где нужно будет доставать пароль можно сделать так User.findOne(…).select(“+password”)
𝚂𝚑𝚞𝚔𝚑𝚊
В модели укажи { password: { … select: false } }
Или же User.findOne(…).select(“-password”)
Andrey
Всем спасибо!)
gercovv
Всем привет, как я могу получить x новых документов через mongoose?
𝚂𝚑𝚞𝚔𝚑𝚊
А почему Schema.pre('save', function(next) { ...(hashing password) }) не работает когда я изменяю документ User.findById(id).exec((err, doc) => { ...(validating) doc.password = newPass doc.save() })
𝚂𝚑𝚞𝚔𝚑𝚊
в бд сохраняется пароль без хэширования