Асхат
всем привет, у всех в официальном докер контейнере не работает команда монго?
Асхат
пишет что нет такой команды
Daniil
Асхат
да есть
Daniil
Теперь mongo -> mongosh
Daniil
В какой то момент изменилось
Асхат
понял спасибо!)
Alexander
Ты юзал в итоге транзакции в монге в проекте или разворачивал реляционку?
Проект начинался тогда, когда транзакций в монге не было и потому у нас есть постгрес на три таблицы, в котором мы считаем деньги. Сегодня я бы так не делал уже.
Да, транзакции использовали. Но кажется, что прямо сейчас нет ни одной. Резюме такое: оно работает, если нужно, то можно использовать, но лучше проектировать систему так, чтобы обходиться атомарными операциями.
FOR YOU
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
Ребята, здравствуйте, недавно начал изучать mongoDB и не понимаю как в нем лучше делать, к примеру, у меня есть коллекции Messages, SingleChat и GroupChat, так вот, как мне лучше сделать:
1. В коллекии Messages 2 возможных поля singleChat и groupChat и на них обеих накинуть индекс
2. Сделать общей родитель у SingleChat и GroupChat, типо Chat, и сделать пол chat в Messages?
Я бы сделал примерно как во втором пункте, поле chatId -> ссылка на чат
Daniil
Но всегда все зависит от ваших задач
Ivan
Глеб
Подскажите что делаю не так?
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 ? У товара есть вес, и в зависимости от веса цена будет разная
Nick
Nick
Oleksandr
Desalutar
Desalutar
Глеб
можете пример привести где именно не понравилось?
было:
[{_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
prgr
Нуриддин
Так если конкретнее, в сингл инстансах нет проблем с чтением, да. Но в репликах (зависит от настроек чтения, если преимущество и реплики, то данные будут появляться с запазданием), а шардах это зависит от того как будут распределяться данные
Нуриддин
Простите, если ввёл заблуждение, в моём опыте никогда не работали с сингл инстансом и такие нюансы упустил😓
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
как можно решить я впервые установил
Ivan
Azm
а можно по подробней..
Azm
я уже измучился можете скрин сделать какую кнопку скаачть надо а то я уже с нейросетями 2 сутки не сплю все перескачал
Tetra
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
Всем привет, кто-то может подсказать по логам причину отвала сервиса/сервера монги на машине ?
рестарт сервиса не помог, помог только полный рестарт машины
Ivan
Artem
вообще не трогал проект последние суток 3 до краша
Ivan
Artem
последняя строка перед крашем ?
Artem
пока не понял, на какую последнюю строку смотреть, чтоб понять какого параметра не хватает и необходимо добавить)
Ivan
Artem
если объясните чуть более развернуто (можно голосовым, или как угодно) - буду рад и благодарен
Artem
хорошо, спасибо за вариант, гляну
Dmytro
Здравствуйте, как правильно использовать $rename для массива с документами?
Nick
Red
Nick
Red
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
Коллеги, привет)
Странная шляпа у меня с 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, но объект выше говорит о том, то там есть значение)
Где я косячу, подскажите пожалуйста)
валидатор у RU:
validator: (value) => /^[а-яё0-9- ]+$/i.test(value) && value.length > 1
Max
Где я косячу?
Max
Кто не спит - ткните меня в ошибку, по-любому я где-то опечатался)
Max
Если перед save сделать find, то в коллекции нет документа с germany
Vyacheslav
Vyacheslav
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 работает корректно