Viktar
Aryn
sort({_id:1})
Не получилось (
Сделал так:
cursor.sort('_id', 1)
Aʙduxᴀlilᴏv ☾
Сергей
Ребят, привет
Подскажите как стоит организовать архитектуру
У меня есть приложение и админка
В приложении пользователь может написать в поддержку
В админке, админы должны отвечать на сообщения
Модель пользователя одна
Есть свойство role: admin | client
Может возникнуть ситуация при которой пользователь с ролью admin будет пользоваться приложением и здесь может возникнуть много конфликтов
Например он напишет в поддержку и ответит сам себе в админке
Стоит ли делать 2 разные модели пользователя отдельно для приложения и отдельно для админки или оставить 1 модель и думать над решением конфликтов?
Pasha
11000 duplicate key error collection: admin.User index: login_1 dup key: { login: "user1" }
Подскажите пожалуйста как сделать уникальность 2 полей
Pasha
Pasha
Сергей
Ооо, а что это за оболочка?
Pasha
Сергей
Alexander Cheprasov
Всем привет! Ребят, подскажите, мне нужно реализовать историю редактирования профиля и кроме даты и имени оператора который редактировал, нужно сохранять наименование полей которые были изменены
Понятно что можно получать документ и перед сравнением его сравнить по все полям, получим то что изменилось и сохранить, а как еще можно? Может быть сама монга может помочь с этим?
Сергей
Alexander Cheprasov
Можно для каждого свойства сделать массив изменений
Тут вопрос еще больше в том, как вычислять изменения?
У меня ясный вариант в голове, сравнивать данные которые пришли с фронта и данные в базе, собственно так получим поля которые подверглись изменению
Может можно как то изящнее?
Сергей
Alexander Cheprasov
Alex
Мы просто сохраняли данные каждой транзакции по документу
Alex
Потом можно было восстановить всю хронологию
Viktar
Viktar
Единственное была проверка перед сохранением отличаются ли от текущих.
Alexander Cheprasov
Интересно, спасибо большое!
Roman
Всем привет. Как описать тип для поля, чтобы значения в нем были уникальны, но при это допускалось повторение пустых полей
Michaеl
Michaеl
вот такая проблема
Michaеl
не мог поключиться ни к одной базе данных в монго
yopp
Всем привет! Ребят, подскажите, мне нужно реализовать историю редактирования профиля и кроме даты и имени оператора который редактировал, нужно сохранять наименование полей которые были изменены
Понятно что можно получать документ и перед сравнением его сравнить по все полям, получим то что изменилось и сохранить, а как еще можно? Может быть сама монга может помочь с этим?
Вы можете использовать change stream: например, в документ добавьте поля last_updated_at и last_updated_by. Обновляйте документ, устанавливая поля last_updated_at и last_updated_by в дату изменения и оператора который их внёс, после чего в change stream попадут только изменившиеся поля, плюс _id изменённого документа, которые вы можете дальше сохранить в коллекцию истории изменений
Alexander Cheprasov
Viktar
Oleg
Всем привет
Можно ли в MongoDB Compass пройтись по всей колекции и применить к конкретному полю toLowerCase?
yopp
Ivan
Single-node replica set тоже подходит
Привет! А не подскажешь, есть ли тесты производительности монги между версиями кроме https://medium.com/@hartator/mongodb-4-2-vs-4-0-3-6-3-4-and-3-2-benchmarks-ee96a09ef231 ?
ㅤdoomer
Привет всем. помогите плз кто чем может. пытаюсь законектится к amazon documentdb с помощью mongoose. Mongo-shell работает, а вот mongoose постоянно выдает ReplicaSetNoPrimary. кто-нибудь сталкивался?
url подключения
урл такой
mongodb://<username>:<password>@<host>:27017/test?readPreference=secondaryPreferred&retryWrites=false
tls отрубил
yopp
Привет! А не подскажешь, есть ли тесты производительности монги между версиями кроме https://medium.com/@hartator/mongodb-4-2-vs-4-0-3-6-3-4-and-3-2-benchmarks-ee96a09ef231 ?
Не встречал. В среднем все бенчмарки ничего не показывают, так как редко являются отражением какой-то реальной нагрузки.
Этот тест сделан совсем плохо, его результаты некорректны.
0) Нет информации об конфигурации тестового стенда, в частности настроек сервера и клиента монги.
1) Нет «прогрева», ни руби, ни монги
2) Используется однократный вызов Benchmark.measure, а значит результаты без учёта шума
3) Вызовы в основном измеряют время которое руби и драйвер тратят на сериализацию/де-сереализацию данных из сокета, а не монгу 🙂 Возможно разница на графике связана с разницой в протоколе
4) Тест-кейсы сделаны некорректно и не покрывают ни одного реального кейса
Если сильно натянуть сову на глобус, эти цифры показывают априори некорректные цифры для случая когда монга используется как простой key-value сторадж с disk persistency
yopp
Но чтоб даже такой кейс померять, надо собрать корректный тестовый стол который позволяет получить достаточный уровень повторяемости измерений
yopp
Здесь уже дроплет на DO полностью инвалидирует вообще все результаты
Ivan
спасибо за развёртнутый ответ. Жаль, что даже каких-то других неправильных тестов я не нашёл =)
Ivan
Ivan
пока на моих тестах профит в пределах погрешностей измерения
Ivan
yopp
Без виртуализации?
yopp
Т.е, монга реально все 8 процессоров видит? 🙂
yopp
я плохо разбираюсь в виртуализации, но пологаю что если гостевая система не видит что она работает на MPU, то скорее всего NUMA настройки не будут иметь эффекта
yopp
есть хорошая статья про влияние NUMA на стораджи, может быть она вам поможет: https://blog.jcole.us/2010/09/28/mysql-swap-insanity-and-the-numa-architecture/
Ivan
Олег
Ребята подскажите пожалуйста, у меня есть лист с массивом тасок, таски создаются но когда обновляешь на фронт выводится только листы, можете подсказать как правильно сделать, спасибо)
Олег
Олег
Олег
Олег
Олег
Bogdan
Oleg
Anonymous
Всем привет. Почему монго не конектится с докером
fλüggåɘnk∂€čhiœßøλ∫ên
Anonymous
MongoServerSelectionError: connect ECONNREFUSED 127.0.0.1:27017 + node.js + docker compose
fλüggåɘnk∂€čhiœßøλ∫ên
Может так?
Anonymous
Может так?
Не помогло, все перепробывали
fλüggåɘnk∂€čhiœßøλ∫ên
Че в докер-композе есть?
Просто к монге подключиться можешь?
fλüggåɘnk∂€čhiœßøλ∫ên
Ну и код самого подключения покажи
Mike
Mike
приветствую
fλüggåɘnk∂€čhiœßøλ∫ên
а код как пытаетесь подключиться?
Anonymous
Всем привет не могу установить MongoDB на комп
fλüggåɘnk∂€čhiœßøλ∫ên
какая ось?
что пишет?
Anonymous
Windows. Долго устанавливает, а затем пишет что невозможно установить на ваш компьютер
fλüggåɘnk∂€čhiœßøλ∫ên
Anonymous
10
🅰️nimeCoder
🅰️nimeCoder
при этом с nodejs я подключен к этому серверу
🅰️nimeCoder
fλüggåɘnk∂€čhiœßøλ∫ên
10
попробуй не msi, а zip скачай, она вообще сможет запуститься у тебя или нет
Andrey
Всем привет, осуществляю миграцию с postgres нескольких баз данных одинаковой структуры. Подскажите, их имеет смысл заливать в одну базу в монге или также раскладывать по разным базам? Основной бизнес процесс - это одновременный поиск по всем базам и формирование отчета. Данные в базах обновляются редко. Что в обоих вариантах меня ждёт со скоростью поиска?
Anonymous
Anonymous
Привет
Anonymous
как мне выкинуть поля из популате?
Anonymous
все получилось
Leksey
всем привет!
начал юзать транзакции, появилось много вопросов
есть коллекция пользователя ('users')
есть коллекция историй промокода (пользователь : промокод; 'users_promo')
есть метод API, задача которого - проверить, есть у пользователя параметр "blocked": true, если есть - не разрешать к примеру активацию промокода
если blocked: true - нельзя активировать промокод
если blocked: false - можно активировать промокод, но необходимо проверить как много пользователь активировал промокодов, если больше 10 - установить blocked: true и запретить активацию промокода
логика (pseudo-code):
const user = user.findOne({ _id: ... })
if (user.blocked) {
// нельзя активировать промокод
return
}
// проверяем количество активаций
const count = users_promo.count({ userId: ... })
if (count > 10) {
// пользователь не может актвировать, уже активировал более 10 промокодов
user.update({ _id: ... }, { $set: { blocked: true } })
return;
}
// создаем запись промокода
users_promo.create({ ... })
// готово
вопросы:
как все сделать на транзакциях?
В первую очередь интересует вопрос с параметром "blocked"
Ведь транзакция изменит параметр, сохранит, но у выполняемого запроса не будет изменений