Yar
лучше добавить свой id рядом уже
Sergey
Чтобы при каждой вставке считался лишний индекс?
Yar
лучше менять _id?
Sergey
Это зависит от бизнес-задачи
Anonymous
Можно как-то монгодб попросить загрузить в память определённые дб/коллекции и выгрузить другие?
Yar
вопрос не понятен
Anonymous
Насколько я понимаю, во время работы с коллекцией монго загружает её в оперативную память. Если я точно знаю, что в ближайшее время не буду с ней работать, можно сервис монги попросить выгрузить её из памяти?
Аналогично с загрузкой в память.
Nick
Nick
Можете просто сдрлать несколько монго баз и тушить их при ненужности
yopp
yopp
Не нужно пытаться перехитрить кэши.
Anonymous
Спасибо за ответы. Ещё вопрос: можно без остановки монго изменить размер кэша?
yopp
Не надо его менять :)
yopp
Вообще не нужно трогать кеш. Ваша проблема с вероятностью 99% не в этом.
Anonymous
Мне надо. На моём ноуте мало памяти и в первую половину работы программы я делаю много хитрых запросов к монге и мне нужны кеши, во вторую половину работы я только пишу в монго и мне не нужны кеши, зато память нужна моей программе.
И WT недостаточно умён, что бы понять что стоит сдуться и не вынуждать систему лезть в свап
yopp
Как бы это грубо не звучало, но это не проблема монги, это ваша проблема. Если у вас настолько ограниченные ресурсы, то после выборки потушите монгу, делайте спокойно свой процессинг, поднимайте снова монгу и импортируйте туда результат.
yopp
Задача WT оптимизировать скорость, а не количество потребляемых ресурсов т
Anonymous
Я и не спорю.
Anonymous
Нет, так нет.
yopp
Более того, вы забываете что ещё есть кэши ОС, над которыми у монги нет контроля.
yopp
И у вас по сути тоже
Anonymous
yopp
И будет у вас две проблемы вместо одной
yopp
Разотритесь на 200 евро и купите себе nanoATX ведро на атоме с 32 гигабайтами памяти.
yopp
Либо временно сливайте результаты на диск и потом их импортируйте
P&P
общий принцип - программеры (соотвественно дрочево с кэшем и тп и тд) стоят дороже чем железо. если у вас иначе - то вы недооцениваете программеров (себя, например)
P&P
btw, just a thought
Ruslan
Привет. на сервере пропали все бд, просто исчезли. Как такое может быть? доступ только у меня. Единственное что я делал, это рестарт монго.
Nick
я по таким делам не спец, но сразу наводящий вопрос, а монга в докере была?
Ruslan
нет
Nickolay
Кто-то удалил данные монги с диска?
Ruslan
var/lib/mongodb просто пустые коллекции.
Ruslan
Я конечно щас бекап восстановлю, но как такое случилось не пойму
Nick
пустые коллекции или вообще пустая база?
Ruslan
база
Nickolay
Кто-то удалил данные
Ruslan
они просто заново создались, когда я запустил свой клиент
Alex
авторизация была настроена ?
Alex
вот вам и ответ
Ruslan
блин
Alexander
монга херит данные после отключения авторизации? O_O
Alexander
сомнительная причина так-то
Ruslan
у меня просто доступ похоже был открыт для всех. я даже не думал что кто то может залеть
John
Если монга слушает не локалхост, то боты с удовольствием потрут вашу инфу
yopp
yopp
На предмет dropCollection или dropDatabase
yopp
ещё есть смысл посмотреть список баз
yopp
там может появится новая с требованием прислать полбиткойна
Ruslan
Ребят, все разобрался. Да, действительно какой то злыдень подчистил все базы. Данные восстановил. У меня вопрос. Я добавляюи в конфиге юзера и вкл авторизацию
security:
authorization: 'enabled'
и комментурю строку
# bindIp: 127.0.0.1
При таком конфиге ситуацию не повторится? или еще как то обезопасится надо?
з.ы до этого авторизация выключена была и хостер мне написал что порт монго прослушивался.
CC-BY-SA-4.0/Docker-ce30.0
лол
CC-BY-SA-4.0/Docker-ce30.0
какая вообще может быть причина, способная оправдать вывешивание базы наружу?
Ruslan
Ничего смешного не вижу. Задал вопрос как правильно обезопасить бд ?
CC-BY-SA-4.0/Docker-ce30.0
Я про ситуацию а не вопрос.
yopp
https://docs.mongodb.com/manual/administration/security-checklist/
CC-BY-SA-4.0/Docker-ce30.0
База не должна быть в интернете.
CC-BY-SA-4.0/Docker-ce30.0
Этого же достаточно.
CC-BY-SA-4.0/Docker-ce30.0
Хост с базой не имеет публичного айпи.
CC-BY-SA-4.0/Docker-ce30.0
Приложение которое работает с базой крутится на другом хосте.
yopp
Вот давайте не будем тут этот срач развозить
CC-BY-SA-4.0/Docker-ce30.0
Хорошо.
Ruslan
Я с монго знаком пару недель. После установки строчка в конфиге на локалхост была заккоменитрована. Я даже не придал значения, думал по умолчанию все закрыто.
Ruslan
yopp
Если у вас база была прибиндина на 127.0.0.1 и ее дропнули, то искать заразу надо начинать на той-же тачке
yopp
Потому что 127.0.0.1 это не 0.0.0.0 и слушает оно только lo0, а это host-local соединения.
Ruslan
Ребят, настроил авторизацию.
Еще вопрос, если я запускаю через
mongod —auth —port 27017 —dbpath /var/lib/mongodb все нормально, все работает
А если через
sudo service mongod start
то выдает - [FAIL] Starting database: mongod failed!
В логах монго ничего нет. куда смотреть?
Arthur
Как в монго задать лимит длины у поля String ? Если сохраняется значение превышающее это значение , то оно обрезается до лимита и сохраняется . ( используется mongoose )
Anonymous
@Arthur_Bobrovskih Сделать .virtual, в нем прописать setter
Anonymous
personSchema.virtual('fullName').
get(function() { return this.name.first + ' ' + this.name.last; }).
set(function(v) {
this.name.first = v.substr(0, v.indexOf(' '));
this.name.last = v.substr(v.indexOf(' ') + 1);
});
axl.fullName = 'William Rose'; // Now `axl.name.first` is "William"
Anonymous
Можно прехуком обрезать
Anonymous
Но я бы вообще это делал не в монгусе, пожалуй. А то магия.
Arthur
Не в монгусе, а где
Arthur
Спс за virtual
Anonymous
Лично я бы в коде делал явно, но это субъективно.
Anonymous
Плюс не люблю к орм привязываться так жестко
Arthur
Понял
Anonymous
Я сохраняю новый пост с текстом,
затем добавляю id поста к его автору в массив постов,
и возвращяю пост клиенту.
но данные автора не популированы,
как мне вернуть созданный пост с популированными данными об авторе не делая поиск только созданного поста ?
Anonymous
Sergey
Зачем в юзере вообще список постов?
Sergey
В постах уже есть связь с юзером