Petro
Можно ли через mongodb compass делать aggregation? Если нет то какие альтернативные GUI приложение вы используете для mongodb?
Ivan
Robo3t
Ruslan
Добрый день, помогите пожалуйста. [conn187] end connection 14.134.3.4:32760 (14 connections now open) в логах монги, кто-то ломится ко мне, как-то можно его забанить?
Ruslan
у меня открыт порт и включена авторизация. Когда я подключась к mongo меня встречает консоль управления много. Почему так? В MySQL пока не авторизуешься, никто тебя не пустит
yopp
Куда подключаетесь и что за консоль?!
Ruslan
rus@asterisk:~$ mongo x.x.x.x:27017 MongoDB shell version: 2.4.10 connecting to: x.x.x.x:27017/test Error while trying to show server startup warnings: not authorized on admin to execute command { getLog: "startupWarnings" } >
Driver
fail2ban?
Ruslan
> db.runCommand( { connectionStatus: 1, showPrivileges: true } ) { "authInfo" : { "authenticatedUsers" : [ ] }, "ok" : 1 } >
yopp
Прикрыть доступ к монге из внешней сети
yopp
В каком смысле — других?
yopp
Если у вас в логах нет сообщения об успешной аутентификации, то чего вы ещё хотите? :)
yopp
Можно начать с того, что наружу должны торчать только те сервисы, которые являются публичными. Остальные сервисы должны по хорошему вообще находиться в изолированной сети, которая наружу не маршрутизируется. Для обслуживания поднять vpn шлюз в изолированню сеть или другую сеть, в которой есть маршрутизация с сетью сервисов.
Driver
Driver
все решаемо, но не средствами самой монги
yopp
fail2ban, port-knock, vpn
fail2ban и подобные сервисы убер плохая идея
yopp
это мнимая безопасность вообще
yopp
если монгу для обслуживания случайно перезапустят без авторизации и не прикроют её из внешнего мира, fail2ban ничем вообще не поможет
Driver
ну это суровый пример стрельбы в ногу
yopp
это реальность
Driver
увы, да
yopp
не увы, это нормально
yopp
именно для этого нужно заводить сервисы в изолированных сетях, а ещё лучше когда у каждого сервиса своя сеть (здравствуй sdn) и между сетями ходит только разрешенный трафик
Олег
Олег, [Jan 16, 2018 at 4:29:15 PM]: Привет всем. Как get запросом вытянуть список всех Collections из MongoDB? Юзаю mongoose. getCollectionList(req,res) { console.log('getCollectionList') try { var showCollections = function(db, callback) { mongoose.db.listCollections().toArray(function (err, names) { console.log(names) }); } console.log(list) res.send("showCollections") } catch (err) { res.status(500).send({ error:err }) } } что то такое делаю, но результата нет
CC-BY-SA-4.0/Docker-ce30.0
не встречал ни одного кейса где база на публичном айпишнике была бы оправдана
CC-BY-SA-4.0/Docker-ce30.0
а вот кейсов слива данных из-за довнов-дба история помнит достаточно
Ruslan
подскажите плиз, в чем разница? db.users.save( { 'name':'user 2', 'level':2 } ) db.users.insert( { 'name':'user 3', 'level':3 } )
Nick
https://docs.mongodb.com/manual/reference/method/db.collection.save/ https://docs.mongodb.com/manual/reference/method/db.collection.insert/
Ruslan
{'_id': ObjectId('5a5e04c1040702033857f393'), 'query': 'bitcoin', 'type': 'bloomberg', 'url': 'https://www.bloomberg.com/news/articles/2017-11-16/bitcoin-exchange-wants-to-be-digital-safe-house-for-hedge-funds'} мне надо save делать получается
Nick
получается, что надо понять что нужно сделать логически, потом прочитать чем отличаются методы и выбрать подходящий под твою задачу
Nick
ну или задать вопрос по нормальному, например, мне нужно вставить док, но если там есть уже такой, то выдать ошибку
Dnk
Подскажите, пожалуйста, почему при использовании subCategoryBulk.find({id: subCategory.id}).upsert().updateOne({$set: subCategory}) я все равно получаю дублирование данных в базе? По логам добавление этой записи делается только один раз на элемент.
Dnk
По задаче: у меня есть массив подкатегорий, я пробегаюсь по каждому - если подходит по условиям, то пытаюсь либо обновить, либо вставить в базу. Так как элементов много, использую bulk. Но обнаружили, что даже если база пустая, то некоторое дублирование все равно присутствует.
Dnk
Что дублируется?
Записи в базе, то есть после выполнения функции словно некоторые из подкатегорий несколько раз вставились. Находили до 5 вставок подряд одной и той же подкатегории.
Ruslan
всем привет, помогите пожалуйста db.articles.update({query : "bitcoin"}, { $set: { body : "" }}, false, true) добавляю body, для всех query "bitcoin" , а если я хочу добавить для всех результатов где body нет. Как мне это сделать
SvPupok
Как в моем вчерашнем вопросе, $exists в помощь)
Ruslan
Как в моем вчерашнем вопросе, $exists в помощь)
db.articles.update({body: { $exists: false}},{$set: { body : "" } }, false, true) так?
SvPupok
Да, очень похоже на правду.
Анатолий
Не советую использовать $exists на ключевых полях, если выборка постоянная, лучше это поле держать в схеме с каким-то пустым значением типа null. $exists перебирает всю коллекцию игнорируя индексы
Анатолий
$exists: false перебирает
Ruslan
ребята, нужна помощь
Ruslan
знаком в монго два дня. Как вывод результатов сделать красивым или построчным
Ruslan
.pretty() есличто
Anonymous
Не нашел профильного чата! Накидайте клевых хостингов забугорных, пожалуйста. Для небольшой VPSки
Slava
ovh, digitalocean, servers com
Slava
еще можно рассмотреть hetzner
Anonymous
ну это пожалуй самый близкий к теме чат, да =)
Anonymous
из моего набора чатов
Deenya
фришный амазон на год
yopp
ну это пожалуй самый близкий к теме чат, да =)
Нет, нне близкий. Есть devops чаты. Например @devops_ru
SvPupok
коллеги, а что можно почитать по анализу планов запросов в 3.x?
Dnk
Сделайте или атомарный запрос или уникальный индекс на поле.
Спасибо за ответ. Проблема решилась заменой initializeUnorderedBulkOp на initializeOrderedBulkOp. Видимо при разбивке на группы происходило дублирование.
yopp
коллеги, а что можно почитать по анализу планов запросов в 3.x?
Мне кажется вы свою проблему решаете не совсем корректными инструментами.
yopp
В чём вопрос?
Dnk
Промахнулся с реплаем ;) это @yarudo было
Оу. А почему вы так думаете?
yopp
Оу. А почему вы так думаете?
Потому что если данные, которые не должны дублироваться, дублируются при неупорядоченной вставке, значит у вас какая-то проблема с запросами.
yopp
Скорее это проблема в использовании ODM. Вероятно subCategoryBulk.find({id:subCategory.id}).upsert().updateOne({$set: subCategory}) собирает два запроса. Но если честно я вообще не понимаю что эта строка делает, так что смотри в логи.
yopp
И если вы более подробно опишете свою задачу, можно будет что-то предложить
Dnk
Задача импорта: я забираю массив данных (у них есть свой id, по которому я сравниваю новые данные и хранящиеся у меня локально). Затем я пытаюсь либо обновить свою запись в базе, либо создать новую. Так как элементов много, то была попытка использовая bulk функции. Я делала вывод - каждый элемент в коде обрабатывался один раз, то есть должна быть только одна запись.
yopp
На этот id нужно создать уникальный индекс. И проконтролировать что у вас действительно генерируется один upsert запрос. Думаю что в вашем ODM это не так
Igor
ребята, а чем можно просматривать монго кроме компаса и рокмонго ?
Stepan
studio 3t
Igor
studio 3t
вот да, только что нашел) отличный гуи
Stepan
как по мне, так он самый лучшый
Igor
как по мне, так он самый лучшый
из него руками тоже нельзя выгрузить бекап базы?
Stepan
руками - нет
Stepan
но там есть много опций для бекапа