Асхат
всем привет, у всех в официальном докер контейнере не работает команда монго?
Асхат
пишет что нет такой команды
Асхат
да есть
Daniil
Теперь mongo -> mongosh
Daniil
В какой то момент изменилось
Асхат
понял спасибо!)
FOR YOU
https://ticketscloud.com :-)
Ты юзал в итоге транзакции в монге в проекте или разворачивал реляционку?
Alexander
Ты юзал в итоге транзакции в монге в проекте или разворачивал реляционку?
Проект начинался тогда, когда транзакций в монге не было и потому у нас есть постгрес на три таблицы, в котором мы считаем деньги. Сегодня я бы так не делал уже. Да, транзакции использовали. Но кажется, что прямо сейчас нет ни одной. Резюме такое: оно работает, если нужно, то можно использовать, но лучше проектировать систему так, чтобы обходиться атомарными операциями.
Artem
Всем привет, на проекте стоит монга локальная, работа идет через монгус. И вот в один момент сервис монго лег, при этом сервисы остальные продолжили работу. Рестарт сервиса не помогал, он не поднимался. Помог только полный рестарт машины. На форумах гугление статуса выдало кое-где, что возможно нехватка памяти. Логи смотрел - но опыта мало, мало что в них понял, ровным счетом. После рестарта машины - сутки аптайма прошли. 1) кто-то мог бы глянуть логи, и подсказать причину падения ? 2) подскажите хороший и понятный новичку источник инфы, где можно научиться обеспечивать бОльшую отказоустойчивость монги локальной. А то поставил и вроде работает до падения - сомнительная логика работы)
Nick
Здравствуйте. когда пытаюсь залогинится в монго использую uri то получаю ошибку MongoServerError: Authentication failed. команда которую я запускаю: mongosh --verbose mongodb://<username>:<password>@localhost:27017/pdp_library_book_service я когда пытаюсь соединиться используя ЯП то получаю другую ошибку: connection() error occurred during connection handshake: auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-1": (AuthenticationFailed) Authentication failed.
U
Ребята, здравствуйте, недавно начал изучать mongoDB и не понимаю как в нем лучше делать, к примеру, у меня есть коллекции Messages, SingleChat и GroupChat, так вот, как мне лучше сделать: 1. В коллекии Messages 2 возможных поля singleChat и groupChat и на них обеих накинуть индекс 2. Сделать общей родитель у SingleChat и GroupChat, типо Chat, и сделать пол chat в Messages?
Daniil
Но всегда все зависит от ваших задач
Глеб
Подскажите что делаю не так? admin> rs.initiate({_id:"config",members:[{_id:0,host:"10.0.123.54:27019"},{_id:1,host:"10.0.123.55:27019"},{_id:2,host:"10.0.123.56:27019"}]}) MongoServerError: already initialized admin> rs.status() MongoServerError: no replset config has been received бред какой - то, пишет что уже проинициализировано, но по факту ничего нет
Desalutar
Всем привет, как то можно динамически вставлять значение без использовании хуков в mongoose ? У товара есть вес, и в зависимости от веса цена будет разная
Desalutar
на уровне монги такого функционала нет, это задача уровня приложения
но то, что в схеме нужно задать массив из значений(вес), это правильно ? т.е. у одного товара есть несколько весов, а в приложении уже считать, если за 250 гр цена 200, то за 500 гр будет 400
Nick
но то, что в схеме нужно задать массив из значений(вес), это правильно ? т.е. у одного товара есть несколько весов, а в приложении уже считать, если за 250 гр цена 200, то за 500 гр будет 400
правильность это плохой критерий, он для всех всегда разный и как правило не особо предсказуемый. Как по мне у одного товара не может быть больше одного параметра веса, иначе это уже не товар а какая торговля на развес
Глеб
rs.conf() тоже ругается7
разобрался, ему не нравятся точки в названии нод
Desalutar
Nick
разобрался, ему не нравятся точки в названии нод
можете пример привести где именно не понравилось?
Глеб
можете пример привести где именно не понравилось?
было: [{_id:0,host:"10.0.123.54:27019"},{_id:1,host:"10.0.123.55:27019"},{_id:2,host:"10.0.123.56:27019"}]}) после этого сделал следующее: echo "10.0.123.54 node1" >> /etc/hosts echo "10.0.123.55 node2" >> /etc/hosts echo "10.0.123.56 node3" >> /etc/hosts и поменял саму инициализацию на новые имена: [{_id:0,host:"node1:27019"},{_id:1,host:"node2:27019"},{_id:2,host:"node3:27019"}]}) после этого все завелось
Oleksandr
как быть в этом случае ?)
Если это единственный атрибут и других не предвидится можно хранить цену в вариантах выбора, а не внутри самого товара. В товаре массив из вариантов в базе данных, при клике на 250г - выбираешь вариант 3, у которого цена например 100. Medusa используют такой подход у себя в e-commerce инструменте
Nick
как быть в этом случае ?)
узнайте как они ведутся у вас в складском учете и у бухгалтеров и надо ли это связывать с тем что на сайте будет. Если не надо связывать то сыпучку можно и как вы сказали делать - создали товар, завели в нем подкатегорию "разбивка по весу" или чтонить подобной, добавили новые категории вида "200 г", в каждой такой подкатегории завели поле с ценой А если связано - то каждая грамовка это свой товар, просто с одинаковым названием, собсна как это будет в 1С у бухов
Desalutar
понял, спасибо
Nick
было: [{_id:0,host:"10.0.123.54:27019"},{_id:1,host:"10.0.123.55:27019"},{_id:2,host:"10.0.123.56:27019"}]}) после этого сделал следующее: echo "10.0.123.54 node1" >> /etc/hosts echo "10.0.123.55 node2" >> /etc/hosts echo "10.0.123.56 node3" >> /etc/hosts и поменял саму инициализацию на новые имена: [{_id:0,host:"node1:27019"},{_id:1,host:"node2:27019"},{_id:2,host:"node3:27019"}]}) после этого все завелось
спасибо что поделились, да с 5 версии в доках есть такая приписка к хостнеймам Use hostnames instead of IP addresses to configure clusters across a split network horizon. Starting in MongoDB 5.0, nodes that are only configured with an IP address will fail startup validation and will not start. https://www.mongodb.com/docs/manual/tutorial/deploy-replica-set/#hostnames
prgr
Всем привет Монго не локает чтение во время исполнения транзакции?
Нуриддин
Всем привет Монго не локает чтение во время исполнения транзакции?
Чтение будет происходить только по тем докам которые записаны в диск(то есть старые) а те что в транзакции идут, будут видны после окончания транзакции
prgr
Easy Rider
Чтение будет происходить только по тем докам которые записаны в диск(то есть старые) а те что в транзакции идут, будут видны после окончания транзакции
Это странно и не логично, ничего во-первых не мешает сделать так чтобы читались и доки до начала транзакции, во-вторых это совершенно тупое поведение, которое ломает любую логику
Нуриддин
Так если конкретнее, в сингл инстансах нет проблем с чтением, да. Но в репликах (зависит от настроек чтения, если преимущество и реплики, то данные будут появляться с запазданием), а шардах это зависит от того как будут распределяться данные
Нуриддин
Простите, если ввёл заблуждение, в моём опыте никогда не работали с сингл инстансом и такие нюансы упустил😓
Azm
привет все я скачал кароч MongoDB Shell Download ии монгош находит но монго нет - PS C:\Users\Admin\OneDrive\Рабочий стол\client> mongosh Current Mongosh Log ID: 658bd625df8c2c7c853d4148 Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.1.1 MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017 PS C:\Users\Admin\OneDrive\Рабочий стол\client> mongod mongod : Имя "mongod" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания имени, а такж е наличие и правильность пути, после чего повторите попытку. строка:1 знак:1 + mongod + ~~~~~~ + CategoryInfo : ObjectNotFound: (mongod:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
Azm
как можно решить я впервые установил
Azm
а можно по подробней..
Azm
я уже измучился можете скрин сделать какую кнопку скаачть надо а то я уже с нейросетями 2 сутки не сплю все перескачал
Azm
это?
Azm
какую версию
Tetra
какую версию
в вашем случае скорее всего самую новую, т.е. 7.0.4
Azm
потом
Azm
команда mongo заработает?
Tetra
потом заработает сервер у вас на ПК, к которому уже можно через клиент mongosh (который заменил старый клиент mongo) подключиться
Red
Здравствуйте! У меня проблема с добавлением полей через aggregation. Суть в том, что у меня есть список некоторых команд в одном документе (на вложении 1) и их описание в другом (2), все в одной коллекции. Нужно взять commands.items.value и найти соответствующие описание в commandsAliases во втором документе, а потом добавить это описание в первый документ, в поле label. Нужно чтобы результат получился как на (3). Я решил так поступить т.к. это описание команд будет использоваться в еще паре мест, поэтому решил вынести и использовать агрегацию. Результат нужен именно в такой структуре (3). Подскажите какие операторы агрегации лучше использовать для этой задачи. Или может быть лучше пересмотреть архитектуру чтобы попытаться избежать всего этого? https://pastebin.com/H00K6e82
Artem
Всем привет, кто-то может подсказать по логам причину отвала сервиса/сервера монги на машине ? рестарт сервиса не помог, помог только полный рестарт машины
Artem
вообще не трогал проект последние суток 3 до краша
Artem
последняя строка - нужно добавить параметр ты вероятно обновлял версию монги
последняя строка скрина логов ? не очень понимаю где именно смотреть подобный лог
Artem
последняя строка перед крашем ?
Artem
пока не понял, на какую последнюю строку смотреть, чтоб понять какого параметра не хватает и необходимо добавить)
Artem
если объясните чуть более развернуто (можно голосовым, или как угодно) - буду рад и благодарен
|$π€√`™
если объясните чуть более развернуто (можно голосовым, или как угодно) - буду рад и благодарен
Если Вы обновляли версию монги, то вероятнее речь про setFeatureCompatibilityVersion. Если не обновляли, то я бы смотрел логи системы а не монги так как выличили только полным рестартом ОС.
Artem
хорошо, спасибо за вариант, гляну
Dmytro
Здравствуйте, как правильно использовать $rename для массива с документами?
Nick
Здравствуйте! У меня проблема с добавлением полей через aggregation. Суть в том, что у меня есть список некоторых команд в одном документе (на вложении 1) и их описание в другом (2), все в одной коллекции. Нужно взять commands.items.value и найти соответствующие описание в commandsAliases во втором документе, а потом добавить это описание в первый документ, в поле label. Нужно чтобы результат получился как на (3). Я решил так поступить т.к. это описание команд будет использоваться в еще паре мест, поэтому решил вынести и использовать агрегацию. Результат нужен именно в такой структуре (3). Подскажите какие операторы агрегации лучше использовать для этой задачи. Или может быть лучше пересмотреть архитектуру чтобы попытаться избежать всего этого? https://pastebin.com/H00K6e82
считайте что на втором уровне массивов работать с объектами по отдельности не получится, разве что разворачивачть через $unwind для плоского состояния
Red
считайте что на втором уровне массивов работать с объектами по отдельности не получится, разве что разворачивачть через $unwind для плоского состояния
Да, я делал 2 $unwind чтобы развернуть все это, но вот дальше как-то не идет, не очень понимаю как взять именно нужное значение
Max
Коллеги, привет) Странная шляпа у меня с Mongoose) Сохраняю документ в коллекцию: countryData: { key: 'germany', locales: { ru: 'Германия', en: 'Germany' }, is_active: true } данного документа ещё нет в коллекции, выше то, что перед сохранением. После new CountryModel(countryData) вот такой результат: creatingData: { _id: new ObjectId('658c9e40c72c901ffb932ef9'), key: 'germany', locales: { ru: 'Германия', en: 'Germany' }, is_active: true } а после await creatingData.save() вот такая шляпа: Trace: E11000 duplicate key error collection: countries index: locale_ru_1 dup key: { locale_ru: null } Ранее такого не было, вроде как ругается на то, что locales.ru = null, но объект выше говорит о том, то там есть значение) Где я косячу, подскажите пожалуйста)
Max
Где я косячу?
Max
Кто не спит - ткните меня в ошибку, по-любому я где-то опечатался)
Max
Если перед save сделать find, то в коллекции нет документа с germany
Max
почему там тире перед пробелом?
регулярка, которая допускает и слова через пробел, и через тире
Vyacheslav
тогда не уверен, сори
Max
странно, что документ создаётся перед save: creatingData: { _id: new ObjectId('658caf7f4e35b4fbd9112b56'), key: 'germany', locales: { ru: 'Германия', en: 'Germany' }, is_active: true } а после save ругается на locale_ru_1 dup key: { locale_ru: null }
Max
хотя null нигде нет)
Max
findOneAndUpdate работает корректно