Constantin
🖤
Добрый день, подскажите пожалуйста по такому вопросу. MongoDB community, установленная по мануалу с сайта на сервер, не требует же никаких аутентификационных данных, и mongo консоль запускается нормально просто при указани хост и порт. Но с удаленной машины компасом не могу к ней подключиться. Пишет, мол, там не запущена такая. То есть она не будет доступна извне, Но будет доступна с машины сервера и можно особо не заморачиваться по поводу прав доступа, пользователей и т.п.?
Maxim
bindIp в конфиге посмотри
AstraSerg
🖤
AstraSerg
Да не за что, дерзйте и обращайтесь, если что.
Vova
Привет. Если у кого есть готовый конфиг проксирования Nginx -> MongoDB, поделитесь пожалуйста. По примерам из инета не работает у меня(
Max
Конфига под рукой нет, но зачем? Вам tcp прям с nginx в монгу Надо? Какую задачу решаете?
Vova
Монга работает локально, хочу поднять глобально и слушать например на порту 5100, чтобы подключаться удалённо, желательно через доменное имя
mongodb://login:password@domain.com:5100/db
Vova
Читаю про bind ip, не знаю то ли это что мне нужно
Max
Проще может будет поменять конфиг монги чтобы слкшала на нужном порту на внешнем интерфейсе?
Vova
Vova
А если я хочу поднять на локалхосте без ссл и на внешний доступ по ссл, как это правильнее сделать?
Max
Боюсь что никак. Или так или так
Bandikoot
могу заблуждаться, но nginx разве может в проксирование чистого tcp в free-версии? если память не изменяет, это фича платной
Vova
Полагаю что из-за ссл будет всё медленно
Max
Ну или проксирование, да, но как-то это странно
Max
Не будет
Vova
Bandikoot
Bandikoot
In NGINX Plus Release 5 and later, NGINX Plus can proxy and load balance Transmission Control Protocol) (TCP) traffic. TCP is the protocol for many popular applications and services, such as LDAP, MySQL, and RTMP.
...
Prerequisites
Latest open source NGINX built with the --with-stream configuration flag, or latest NGINX Plus (no extra build steps required)
https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/#
Bandikoot
но ещё проще будет всё же средствами монги слушать внешний адрес и использовать ssl, если к бд не строятся 100500 коннектов
ᅠ ᅠ ᅠ ᅠ
Ребят, а за что отвечает параметр excludeId() https://docs.mongodb.com/manual/tutorial/project-fields-from-query-results/#suppress-id-field в примере ?
ᅠ ᅠ ᅠ ᅠ
я понимаю, что с помощью include метода включаю поля, а exclude исключаю, но для чего нужен excludeId?
ᅠ ᅠ ᅠ ᅠ
Max
привет! подскажите, пожалуйста, как удалить все документы с коллекции?
AstraSerg
Max
db.coll.remove({})
а это можно в кормпасе сделать? (ручками уже написал код и удалил) чот не вижу
Max
ок, понял, спасибо
Anonymous
А можно еще db.collection-name.drop()
Max
Anonymous
Но тогда вся коллекция будет удалена
Max
У меня тут ещё один вопрос - про индексы в монге, а точнее в монгузе. Какой-то мудак написал:
schema.index({
'requestedPickup.location': '2dsphere',
});
requestedPickup вместо requestedPickUp. Что произоёдт если я просто поменяю ключ по которому будет идти индекс и начну пушить новые документы? у меня в коллекции будет два индекса?
Constantin
Max
Alex
подскажите пожалуйста, как обновить только одно поле в существующем объекте внутри mongoDB ?
Михаил Макарычев
Alex
set заменяет весь объект, нужно заменить только разницу в полях
Let’s
Привет, как с помощью pymongo обновить только те поля которые есть в пэйлоде(новых данных)?
Например: уже существует док {'_id': 1, 'job': {'job_field_1': 0, 'job_field_2': 1} }
fа новый пэйлод у нас только : { 'job': {'job_field_1': 55,}}
Let’s
делаю так - collection.update_one({'_id': ObjectId(id)}, {"$set": job_dict}, upsert=False)
Let’s
но обновляет только полностью совпадающие поля
Let’s
по ключам совпадающие
Alexander
Всем привет. Коллеги, не сочтите троллем. Изучаю монгодб, не могу понять когда его стоит использовать вместо mysql\postgres и собственно почему. Это равноценная замена или в каких-то задачах монго непревзойден?
Nick
Всем привет. Коллеги, не сочтите троллем. Изучаю монгодб, не могу понять когда его стоит использовать вместо mysql\postgres и собственно почему. Это равноценная замена или в каких-то задачах монго непревзойден?
все ситуативно, например классическая проблема монги, если у вас данные реляционные и запросы в терминах обычного sql требуют множества join-ов, то монга не лучший выбор. но это не будет проблемой если в базе несколько сотен тыщ записей и все они помещаются в кеш.
Дальше мое личное мнение: в общем случае лично я считаю, что монга хороша для следующих случаев:
1. для прототипирования, когда структура бд часто меняется и реально удобноно использовать json разной структуры. мало данных - любые запросы
2. когда вам нужен шардинг для хранения очень большого количества записей, которые обрабатываются парой тройкой запросов, по которым простроены индексы и больше никаких других. много данных - конкретный набор запросов, произвольные не допускаются
3. у вас есть специалист, который знает и умеет в монгу и он сказал, что все будет гуд на ваших объемах/задачах
Alexander
да, я понял что монга это немного другой подход и тут не стоит выстраивать традиционные реляционные связи
Alexander
https://www.youtube.com/watch?v=ZS_kXvOeQ5Y
Alexander
я смотрел этот ролик
Alexander
ну и по самой монге
Alexander
https://www.youtube.com/watch?v=VELru-FCWDM
Nick
у вас опыт в sql имеется?
Alexander
и везде аргументы идут за горизонтальное масштабирование, что есть реальная необходимость, но постгре с этим вроде почти из коробки справляется
Alexander
да, mysql 10 лет
Alexander
постгре последние полгода
Alexander
ну мускуле шардинг запилить дело нетривиальное и если выбирать мускуль или монго для большого проекта, то выбор видимо очевиден
Alexander
но вот сейчас я работаю с постгре и там с шардингом все значительно проще, а потому для меня аргументы про горизонтальное масштабирование становятся неясными
Nick
на самом деле не очевиден, т.к. большой большому рознь. одно дело хранить гигабайты картинок/файлов, другое - идентификаторы на них и третье хранить связи документов и приложенных картиночек
Alexander
вроде как файлы в базе не хранят уже
Alexander
хотя могу ошибаться конечно
Nick
если что, то моя позиция со стороны разработчика, а не админа. я понимаю про проблемы видные со стороны приложения
Alexander
я тоже разработчик. администрирование знаю, но не профи
Alexander
так что пока на одном языке говорим 🙂
Nick
и к сожалению по постгре с шардингом не сталкивался
Alexander
https://habr.com/company/oleg-bunin/blog/309330/
Alexander
ну это если интересно
rdcm
Всем привет.
Есть проблемный кейс с транзакцией в 4.0. Делаю ~10 параллельных запрсов на запись, часть падает с 500.
На каждый http запрос на монго клиенте стартую новую сессию и на ней уже стартую транзакцию. Часть запросов падает с MongoWriteException, стэк трейса под рукой нет.
Если запросы идут последовательно всё ок.
Есть подозрение, что время жизни сессии per request некорректно.
https://docs.mongodb.com/manual/reference/method/Session/
https://docs.mongodb.com/manual/reference/method/Session.startTransaction/
rdcm
Кто-нибудь сталкивался уже с таким? .net driver
🖤
подскажите, есть запущенная монга на сервере (просто демоном без спецификации db-path) и база на mlab. Хочу перенести из mlab на сервер, mlab предлагает команду mongorestore, пытаюсь её без указания директории использовать - ругается. Как посоветуете поступить?
Команда:
mongorestore -h lolkek.mlab.com:123456 -d dbname -u <user> -p <password> <input db directory>
Говорит:
2018-09-10T05:00:05.286+0200 the --db and --collection args should only be used when restoring from a BSON file. Other uses are deprecated and will not exist in the future; use --nsInclude instead
2018-09-10T05:00:05.287+0200 using default 'dump' directory
2018-09-10T05:00:05.287+0200 see mongorestore --help for usage information
2018-09-10T05:00:05.287+0200 Failed: mongorestore target 'dump' invalid: stat dump: no such file or directory
SvPupok
а если предварительно экспортировать через mongodump?
AstraSerg
rdcm
Vova
Кинь код в лс, может замечу что-то
Let’s
Привет, есть простой способ запустить докер с монгой с поддержкой Replica sets?
Let’s
для того что бы слушать ивенты
Let’s
дополнительных нод не нужно
Vova
стектрейс:
https://pastebin.com/8NjxAVwU
код:
https://pastebin.com/aqbRKzur
Write conflicts indicates that multiple clients are trying to update exactly the same document within the same fraction of a second. This window is the time between the execution of the WiredTiger API's WT_SESSION::begin_transaction()and WT_SESSION::commit_transaction() operations.
Vova