XMT
Я кст убрал timeout и он сработал
Damir
Ребзя, всем привет! Ситуация такая, есть кластер с PSA архитектурой, 5.0.15 версия, находится в Германии, есть новые 3 сервака в Москве, также монго 5.0.15 установлены, не добавляются в набор реплик, на московских серваках 2 сетевых интерфейса, 101 и 103 подсети, для подключения с монгой москвы есть внешний айпи с портом 47017, на серваке 27017 в conf файле, с немецких серваков через монгош могу зайти на московские через внешний айпи и порт 47017, но в реплику не загоняется, как думаете в чем проблема?
Damir
Сетую на сеть, но то что через монгош могу зайти с немецких серваков в московские ломает логику
XMT
Что вы бы выбрали, express или nuxt?
XMT
из этого ничего
А что ты бы выбрал? 😄
А
XMT
🤨
А
Что вы бы выбрали, express или nuxt?
выбирай то с чем больше работаешь
А
сами фреймы неплохие но есть технологии получше
yopp
0.0.0.0
я имюе ввиду в rs.config()
А
если тебе именно на джс нужно бек писать то советую посмотреть в сторону express
yopp
Внешка
порт указан как 47017?
Damir
93.*.*.
Damir
порт указан как 47017?
В конфиге монго 27017, но внешка 47017
XMT
если тебе именно на джс нужно бек писать то советую посмотреть в сторону express
Но все же, когда в компанию в какую-то пойдешь, там то реакт требуют, то чет другое
XMT
Реакт плохой в плане сео как минимум 😊
А
Но все же, когда в компанию в какую-то пойдешь, там то реакт требуют, то чет другое
если ты вот джсник то за бек бери експресс и нукст а фронтом - реакт и ангуляр,
А
а вообще какой в компании стек на том ты и будешь писать
А
если у них не с нуля проект сделан
Магомед
Что вы бы выбрали, express или nuxt?
nuxt, если на фронте используется vue, nest или чистый express, если не имеет значение
XMT
Как в компас подключится? Не хочет подключаться скатина 🤣
Samat
{ "_id": "234dssfcv456", "Name": "Jean Douglas", "Age": 32, "Courses": [ { "_id": "1234", "Name": "Computer Science", "Level": "Basic", "Lectures" : [] }, { "_id": "3456", "Name": "Bio Science", "Level": "Intermediate", "Lectures" : [ { "_id" : 433, "Name" : "lectture1" }, { "_id" : 1234, "Name" : "lectture1" } ] } ] } Добрый день, у меня есть вопрос по поводу того как обновить запись в сущности Lectures, по конкретному Luctures _id Например, я хочу обновить запись с _id = 433, его наименование с lectture1 на lectture2 видел пример обновления записи с одной вложенностью https://stackoverflow.com/questions/38839260/update-property-in-nested-array-of-entities-in-mongodb , но не смог подогнать по этот случай, с еще одной доп вложенноостью работаю на c# может ли кто ни будь помочь?
Samat
хотел бы обновить объект по пути : "_id": "234dssfcv456", Courses : "_id": "3456", Lectures : "_id" : 433,
Samat
var _client = new MongoClient(@"...."); var _database = _client.GetDatabase("..."); var _students = _database.GetCollection<Student>("students"); var filter = Builders<Student>.Filter; var studentIdAndCourseIdFilter = filter.And( filter.Eq(x => x.Id, "234dssfcv456"), filter.ElemMatch(x => x.Courses, c => c.Id == "1234") filter.ElemMatch(x => x.Courses.FirstMatchingElement().Lectures, c => c.Id == "433") ); // find student with id and course id var student = _students.Find(studentIdAndCourseIdFilter).SingleOrDefault(); // update with positional operator var update = Builders<Student>.Update; var courseLevelSetter = update.Set("Courses.$.Lectures.$.Name", "Updated Name"); _students.UpdateOne(studentIdAndCourseIdFilter, courseLevelSetter);
Samat
пример моего кода, но он выдает ошиьку
Samat
Too many positional (i.e '$') elements foundin path
Ростислав ✚
Всем привет, подскажите в чем может быть проблема, в базе всего около 40к документов, а каждый запрос find занимает по 6s, так же не должно быть? В базе будет десятки миллионов записей и весить она будет 300гб, тогда каждый запрос будет занимать 1 день? Может у кого есть идеи что с этим делать?
Ростислав ✚
.lean() попробуй
Это в mongoose или в mongodb можно?
Ростислав ✚
Индексы хоть есть?)
Похоже что нет, сейчас делаю, я просто дописываю после другого человека, вот изучаю)
Damir
Похоже что нет, сейчас делаю, я просто дописываю после другого человека, вот изучаю)
Проведите explain, если есть COLLSCAN, то нужно вешать индекс, если заранее знаете что запрос такого типа будет очень частым, есть смысл создать индекс, если в запросе условия по нескольких ключам и используется сортировка и т.д., то лучше создать композитный индекс по правилу ESR. Но не стоит плодить индексы лишний раз, так как падает скорость записи да и увеличивается объем хранимых данных
Ростислав ✚
Я хотел эти 4 поля хешировать в отдельном поле при записи и его индексировать, по нему потом искать, но я так понял монго может сама это сделать?
Максим
Кто-нибудь может помочь с установкой nodejs чата на Windows VPS? За небольшую плату?)
Андрей
Подвернулась базёнка весом в 5G, в которую напхали 3.5к+ коллекций. Это барахло в линухе ресторится только на сервере с 40G рамы и на любые параметры ему плевать. На серверах похилее рестор фэйлится, СУБД отстреливается. Воспроизводится абсолютно на всех версиях. error running create command: connection(localhost:27017[-5]) socket was unexpectedly closed: EOF В винде ресторится успешно, но тоже выжирает прилично рамы - 10G почти. Это фэйспалм какой-то 🤦.
Проверил. Похоже MongoDB таки больна на рестор множества коллекций. Нагенерил несколько тысяч "одноклеточных" доков и раскопировал это на 3.5к коллекций. 3G на диске заняло. При ресторе сжираются десятки ГБ рамы и валится с той же ошибкой: Failed: mytestdb.mytestcol_copy_666: error creating collection mytestdb.mytestcol_copy_666: error running create command: connection(localhost:27057[-5]) socket was unexpectedly closed: EOF.
Андрей
При чём не обязательно память под ноль уходит. И на 8 и на 10 доступной еще памяти СУБД дохнет.
Андрей
Как там тикет оформить? В bug Core Server (SERVER)?
Андрей
Любая в любой ОСи на всех версиях СУБД.
Андрей
а какие ошибки в логе самой монги? возможно она упирается в лимит файловых дескрипторов?
Тонны насыпает всякого. Гляну, конечно, возможно и есть по открытым файлам сообщения. Но память льётся неистово в любом случае. Дамп тоже ест гигами при ничтожном датасете по объёму. Количество файлов - одно, а то, что СУБД за собой не чистит по уже отработанным таскам (коллекциям) - другое по идее 🤨
Андрей
Дашь базе безлимит, ну она сожрёт все иноды и всё крякнет всё равно.
Андрей
Память кончится раньше 😬
Андрей
Это, конечно, хорошо) А у меня есть база в проде, база, наляпанная от балды, и всё валится, если это не сервер с десятками гигов ОЗУ.
yopp
вы выше написали что смогли воспроизвести проблему на «пустых» коллекциях в моём деплойменте эта проблема не воспроизводится
yopp
"version": "6.0.6", target_arch": "aarch64"
Андрей
Не на пустых всех, а в присутствии пустых.
Андрей
я написал небольшой стресс-тест, нагенерировал 4000 коллекций и через mongorestore восстановил
Мне этот скрин ни о чём не говорит к сожалению. Что за трэды, что за 801МБ.
yopp
у вас 4гб это все коллекции или каждая?
yopp
Мне этот скрин ни о чём не говорит к сожалению. Что за трэды, что за 801МБ.
801Мб это rss монги в которую было восстановленно 4 тысячи коллекций
yopp
la 0.5
yopp
заняло минут 5
Андрей
у вас 4гб это все коллекции или каждая?
Все. Данные на диске весят до 5G.
Андрей
для примера
Андрей
заняло минут 5
У меня тоже всё прекрасно на паре сотен других серверов и сотен баз, где нет такого количества коллекций, имея миллиарды и миллиарды доков 😏. ЧЯДНТ в этом случае?
yopp
трудно сказать, но предположу что проблема не в самой монге, а в настройках хост системы
yopp
посмотрите что в логах на момент когда рестор отваливается
Андрей
трудно сказать, но предположу что проблема не в самой монге, а в настройках хост системы
Память же ест монга, а не ОСь. Какие такие настройки могут быть в линухе и винде, при которых MongoDB в ванильном ресторе ест десятки гигабайт при 3 гигах данных?
Андрей
через пол часика логи покопаю
Андрей
На сервере с 40G рамы всё ресторится успешно - повторюсь 😉
Андрей
Это в линухе. В винде при 30.
Андрей
Ни настройки кэша, ни ключи воркеров и одновременных коллекций ни на что не влияют
Ilshat
Ну вот, можно ресторить на большом хосте, потом снимать файловый бекап и перенести на маленький хост. И еще навтыкать разрабам