Oleksii
в общем суть понятна, я эти решения видел, все однотипно по сути функция счетчик. я думал есть какой-то встроенный монговский метод, о котором я не знал, всем спасибо!
Sergiy
разве что уточнение - монговская база - ведущая. если ведомая - то не нужно
Nick
уже привел
если это id внешеней системы, то вам не нужен автоинкремент, т.к уже есть id
Nick
но в обоих случаях нет потребности работат ьс автоинкреентами, поэтому всетаки как сказал выше обычно автоинкремент не нужен либо от него можно легко избавиться
Nick
есть только одна известная мне задача где нужен автоинкремент - нумерация дел в какойнить госухе, где без этого документооборот развалится, во всех остальных случаях хоть объектную структуру в качестве ид используй
Sergiy
одна из них - это коробочное решение для екомерс
Oleksii
еще вопрос, а если мне нужно сделать генерацию номеров заказа, по типу S2A4S2D1 - есть какой-то пакет нодовский? или можно все в базе реализовать? такое не делал, даже не гуглил, чисто спросил
Nick
я видел системы в которых данные распределены между монгой и рсубд и монга - ведущая
я не вижу в ваших сообщениях, где реально используется автоинкремент в той БД, которую проектирую
Nick
ну, а я не телепат, чтобы знать, что вы там и как проектируете
просил же примеры бизнес кейсов, в которых потребуется автоинкрементные идентификаторы
Sergiy
для меня вопрос сводится к общему вопросу кто-то в системе должен сгенерировать уникальное значение и хранить его если не монга - то кто-то другой. но эта работа должна быть кем-то в системе - сделана
Sergiy
уже третье обоснование привел :)
Nick
уникальный и автоинкреммент не связаны
Sergiy
уникальный и автоинкреммент не связаны
автоинкремент - частный случай уникального значения. по способу его получения
Nick
если просят уникально - uuid
Nick
если просят суперуникально с разьросом по планете - uuid
Sergiy
если просят уникально - uuid
у uuid тьма недостатков
Sergiy
которые могут быть неприемлимы. я вообще избегаю, и не помню когда им пользовался
Sergiy
если просят уникально - uuid
по планете - редко надо. надо - в рамках системы
Rodion
автоинкремент - частный случай уникального значения. по способу его получения
Я костылях с этим делом на предыдущем проекте - специальную таблицу создавал со списком текущих id других таблиц и обновлял их в синхронизированном контексте (lock), чтобы с многопоточкой работало нормально. В общем, такое себе удовольствие. Надеюсь в новом проекте обойдется без числовых id.
Rodion
про монгу не скажу. в рсубд это штатный функционал. поэтому - мне малопонятно какие проблемы могли возникнуть. и почему например, таких же проблем не будет с UUID
А uuid он почти гарантированно уникальный, вероятность коллизии там ничтожна. А если говорить про ulid, то он ещё и сортируемый, тк начинается с таймштампа.
Sergiy
А uuid он почти гарантированно уникальный, вероятность коллизии там ничтожна. А если говорить про ulid, то он ещё и сортируемый, тк начинается с таймштампа.
он избыточно жирный а база данных - это не таблицы, это - индексы а по нем еще и джойнится придется. а если он первичный ключ - так еще и дальше пробрасывать я не настаиваю, сколько архитекторов - столько и мнений просто - не пользуюсь, когда нет требования в ТЗ незачем им пользоваться,потому что
Sergiy
монга - по другому работает, может в ней и ок. еще серьезно за нее не брался, не скажу
Sergiy
Числовой id это разве не легаси нынче? А в распределенных системах как его синхронизируете?
не знаю. вижу в новых проектах. синхронизируется - кто с кем? почему возникает такая необходимость, если эта ответственность - выделена какой-то группе рсубд? опустим холивар что распределенные системы - это редкий кейс. в сравнении с - нераспределенными.
Hamdam
Я начал изучать монго и по середине уже понял что есть большая проблема с pagination
Hamdam
Когда по id делаешь ок )) но compound query очень сложно сделать
Hamdam
есно. она же графовая по сути
Не знаю я только начал. Говорят там когда углубляться будешь агригейшн все дела упростят
Гена
Ребята подскажите пожалуйста а в чем смысл платить за mongo enterprise если его можно скачать также как и обычный бинарник и поставить? как и опс манагер я не пойму чего-то)
Maxim
Добрый день. В команду ищу администратора MongoDB, Apache Cassandra. С опытом от двух лет. Подробности - в ЛС. Москва.
Гена
ахаха))
Гена
Саппорт?
а еще?)
Konstantin
а как удалить существующие индексы в монго?
Гена
а как удалить существующие индексы в монго?
https://docs.mongodb.com/manual/reference/method/db.collection.dropIndex/
Konstantin
db.users.dropIndex(id)
Konstantin
у меня индекс id:1 стоит
Konstantin
Konstantin
Гена
у меня индекс id:1 стоит
Это дефолтный Его нельзя дропнуть вроде
Гена
а как обновить его?
Что вы имеете ввиду ?
Гена
Перебилдить?
Konstantin
lf
Konstantin
да
Konstantin
> db.users.createIndex({id:1}, { background: true }) { "ok" : 0, "errmsg" : "Index with name: id_1 already exists with different options", "code" : 85, "codeName" : "IndexOptionsConflict" }
Konstantin
он не билдится по новой
Гена
Потому что дефолтный
Гена
А зачем вам это?
Konstantin
А зачем вам это?
ускорить монгу
Konstantin
ибо без индексов у меня цпу под 100% загружено
Konstantin
я хочу обновить все индексы, на всякий случай
Гена
Так id что вам сделал?)
Konstantin
я не знаю)
Konstantin
понятия не имею, но оно ускоряет работу!
Гена
Я думаю вы не с того начинаете
Гена
Я предложил бы вам глянуть логи и посмотреть из-за чего цпу кушается
Гена
Долгие запросы План выполнения
Гена
В этом направлении
Konstantin
понял
Гена
Но перебилд id не то куда надо копать
Konstantin
а еще со временем монга забивает все больше и больше озу
Konstantin
Гена
Ну смотрите что за запросы бегут
Гена
Ставлю на то что запросы непроиндексированные
Konstantin
Гена
Создавать индексы
Гена
Ключевое слово в логах collscan
Гена
Проще всего
Гена
Смотрите такой запрос Смотрите по какому полю бежит Туда индекс Но надо понимать нужен ли этот запрос вовсе
Гена
Вопрос комплексный