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?
yopp
Ruslan
> db.runCommand( { connectionStatus: 1, showPrivileges: true } )
{ "authInfo" : { "authenticatedUsers" : [ ] }, "ok" : 1 }
>
yopp
Прикрыть доступ к монге из внешней сети
Ruslan
yopp
В каком смысле — других?
yopp
Если у вас в логах нет сообщения об успешной аутентификации, то чего вы ещё хотите? :)
yopp
Можно начать с того, что наружу должны торчать только те сервисы, которые являются публичными. Остальные сервисы должны по хорошему вообще находиться в изолированной сети, которая наружу не маршрутизируется. Для обслуживания поднять vpn шлюз в изолированню сеть или другую сеть, в которой есть маршрутизация с сетью сервисов.
Driver
все решаемо, но не средствами самой монги
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
})
}
}
что то такое делаю, но результата нет
Ruslan
Ruslan
yopp
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
получается, что надо понять что нужно сделать логически, потом прочитать чем отличаются методы и выбрать подходящий под твою задачу
Ruslan
Nick
ну или задать вопрос по нормальному, например, мне нужно вставить док, но если там есть уже такой, то выдать ошибку
Dnk
Подскажите, пожалуйста, почему при использовании
subCategoryBulk.find({id: subCategory.id}).upsert().updateOne({$set: subCategory})
я все равно получаю дублирование данных в базе?
По логам добавление этой записи делается только один раз на элемент.
Dnk
По задаче: у меня есть массив подкатегорий, я пробегаюсь по каждому - если подходит по условиям, то пытаюсь либо обновить, либо вставить в базу. Так как элементов много, использую bulk.
Но обнаружили, что даже если база пустая, то некоторое дублирование все равно присутствует.
yopp
Dnk
Что дублируется?
Записи в базе, то есть после выполнения функции словно некоторые из подкатегорий несколько раз вставились. Находили до 5 вставок подряд одной и той же подкатегории.
Ruslan
всем привет, помогите пожалуйста
db.articles.update({query : "bitcoin"}, { $set: { body : "" }}, false, true)
добавляю body, для всех query "bitcoin" , а если я хочу добавить для всех результатов где body нет. Как мне это сделать
SvPupok
Как в моем вчерашнем вопросе, $exists в помощь)
SvPupok
Да, очень похоже на правду.
Анатолий
Не советую использовать $exists на ключевых полях, если выборка постоянная, лучше это поле держать в схеме с каким-то пустым значением типа null. $exists перебирает всю коллекцию игнорируя индексы
Анатолий
$exists: false перебирает
Ruslan
ребята, нужна помощь
Ruslan
знаком в монго два дня. Как вывод результатов сделать красивым или построчным
Ruslan
.pretty() есличто
Anonymous
Не нашел профильного чата! Накидайте клевых хостингов забугорных, пожалуйста. Для небольшой VPSки
Slava
ovh, digitalocean, servers com
Slava
еще можно рассмотреть hetzner
Ruslan
Anonymous
ну это пожалуй самый близкий к теме чат, да =)
Anonymous
из моего набора чатов
Deenya
фришный амазон на год
SvPupok
коллеги, а что можно почитать по анализу планов запросов в 3.x?
yopp
Anonymous
yopp
yopp
yopp
В чём вопрос?
Dnk
yopp
Оу. А почему вы так думаете?
Потому что если данные, которые не должны дублироваться, дублируются при неупорядоченной вставке, значит у вас какая-то проблема с запросами.
Dnk
yopp
Скорее это проблема в использовании ODM. Вероятно subCategoryBulk.find({id:subCategory.id}).upsert().updateOne({$set: subCategory}) собирает два запроса. Но если честно я вообще не понимаю что эта строка делает, так что смотри в логи.
yopp
И если вы более подробно опишете свою задачу, можно будет что-то предложить
Dnk
Задача импорта: я забираю массив данных (у них есть свой id, по которому я сравниваю новые данные и хранящиеся у меня локально).
Затем я пытаюсь либо обновить свою запись в базе, либо создать новую.
Так как элементов много, то была попытка использовая bulk функции.
Я делала вывод - каждый элемент в коде обрабатывался один раз, то есть должна быть только одна запись.
yopp
На этот id нужно создать уникальный индекс. И проконтролировать что у вас действительно генерируется один upsert запрос. Думаю что в вашем ODM это не так
Dnk
Igor
ребята, а чем можно просматривать монго кроме компаса и рокмонго ?
Stepan
studio 3t
Igor
studio 3t
вот да, только что нашел) отличный гуи
Stepan
как по мне, так он самый лучшый
Stepan
руками - нет
Stepan
но там есть много опций для бекапа