Nick
а в поле img находится base64 картинка или название ее?
Amir
Nick
Тогда думаю не критично
Іван 🤙
Хеллоу)
такой вопросик)
если у меня монга забинджена на локалхост (127.0.0.1) на неё в любом случае не смогут попасть из-вне??
или лучше еще и пассворд поставить???
потому что на самом серваке есть логин\пасс
просто была трабла, что монга дропалась непонятно почему, тут говорили что её могут дропать, если она смотрит в мир без пароля)
AstraSerg
Іван 🤙
Тоесть в аутентификации есть смысл только когда она забинжена на "мир"(0.0.0.0) ?)
AstraSerg
С дргой стороны, включить авторизацию никогда не плохо. На случай, если вы захотите выставить таки её в интернет. Потому что потом в работающем проекте включить авторизацию без давнтайма не получится.
AstraSerg
AstraSerg
а кроме этого авторизация полезна для разделения прав между скриптами
Іван 🤙
ага)
понял , спасибо большое)
доп вопросик)
из-за чего еще может дропаться база?, кробе злобных скриптов-хакеров))
ASPIRIN
ASPIRIN
настройте логирование и ждите)
Іван 🤙
Спасибо всем!😘
jmargallo
hello
jmargallo
Посмотрим, сможет ли кто-нибудь помочь мне.
У меня есть bbdd mongo, и я очистил поля внутри коллекции, а это значит, что у меня больше дискового пространства, но для этого я понимаю, что мне нужно сделать «компактную» коллекцию.
Моя коллекция заняла 15 ГБ, а при чистке бинарных полей я уменьшил сбор до 8 ГБ.
> показать dbs
Mybbdd 19.944GB
Но при создании компактного (Джобс - это коллекция из bdd):
db.runCommand ({compact: 'Jobs'})
После окончания «компактного», а не перераспределения, доступным является дисковое пространство. Я потерял место! : (((((((
> показать dbs
Mybbdd 29.939GB
У моего альбома было 16% бесплатно (до компактности), и теперь у меня есть бесплатные 12% (после компактности)
Что я делаю неправильно?
Большое спасибо заранее
Danya
Господа знающие, подскажите пожалуйста. Вот я тут создал в массиве ключ и значение на 85 строке и у меня в БД появился автоинкримент primary key, как это работает?
Danya
yopp
Это бага. Массивы в bson это хеши с ключами, где ключ индекс элемента.
Ваш сериализатор при установке нецифрового ключа автоматически привёл массив к хешу, сохранив существующие элементы.
yopp
А в реальности должен был кинуть в вас исключением
yopp
И это не primary key.
yopp
В монге primary key это корневой атрибут _id
Danya
спасибо за пояснение!)
Danya
А можно ли пользоваться этой багой или лучше это реализовать по человечески?
yopp
Определенно не стоит
AstraSerg
Посмотрим, сможет ли кто-нибудь помочь мне.
У меня есть bbdd mongo, и я очистил поля внутри коллекции, а это значит, что у меня больше дискового пространства, но для этого я понимаю, что мне нужно сделать «компактную» коллекцию.
Моя коллекция заняла 15 ГБ, а при чистке бинарных полей я уменьшил сбор до 8 ГБ.
> показать dbs
Mybbdd 19.944GB
Но при создании компактного (Джобс - это коллекция из bdd):
db.runCommand ({compact: 'Jobs'})
После окончания «компактного», а не перераспределения, доступным является дисковое пространство. Я потерял место! : (((((((
> показать dbs
Mybbdd 29.939GB
У моего альбома было 16% бесплатно (до компактности), и теперь у меня есть бесплатные 12% (после компактности)
Что я делаю неправильно?
Большое спасибо заранее
Javier, could you please ask your question in English. Autotranslate to Russian is disgusting.
yopp
We have group for english speaking users: @mongo_db
Anonymous
подскажите, как через монго-шелл добавить всем существующим документам одно и то же поле с постоянным значением?
Bandikoot
Anonymous
Bandikoot
м, пардоньте
Bandikoot
db.collection.updateMany(
Anonymous
Bandikoot
либо db.collection.update({}, {$set { 'field' : 'value' }}, {multi : true})
Anonymous
а подскажите такую штуку, есть Монго модель, там есть поле
name: {
type: String,
required: true,
minlength: 1,
trim: true,
index: true,
unique: true
},
но оно сохраняет дубликаты без вопросов, хотя раньше ругалось.
Сохраняю командой
let doc = new Doc(req.body)
doc.save();
Bandikoot
не очень знаком с моделями, к сожалению. по name есть индекс в коллекции?
через db.collection.getIndexes() можно глянуть
Anonymous
Bandikoot
на стороне бд уникальность значений, насколько знаю, проверяется по индексу. если по полю индекс не построен с {unique : true}, то может и будет пропускать дубли
Bandikoot
Anonymous
а он-таки не построен, да
я даже не совсем понимаю, что такое индекс, я полагал это для быстрого поиска, если по полю часто ищешь
Bandikoot
я даже не совсем понимаю, что такое индекс, я полагал это для быстрого поиска, если по полю часто ищешь
Это основное его назначение, да. Суть в том, что документ в монге хранится в bson и достаётся из хранилища при обработке запроса. Если, к примеру, запрос с условием по неиндексированному полю, то каждый документ достаётся и проверяется (так называемый collscan). Если по индексированному, то монга будет не доставать документы сразу, а проверять условие в некоем урезанном общем документе, где хранятся только значения индексируемого поля и _id-шники, по которому движок хранилища сразу лезет за подходящим файлом.
Anonymous
Это основное его назначение, да. Суть в том, что документ в монге хранится в bson и достаётся из хранилища при обработке запроса. Если, к примеру, запрос с условием по неиндексированному полю, то каждый документ достаётся и проверяется (так называемый collscan). Если по индексированному, то монга будет не доставать документы сразу, а проверять условие в некоем урезанном общем документе, где хранятся только значения индексируемого поля и _id-шники, по которому движок хранилища сразу лезет за подходящим файлом.
cпасибо большое, понял, что мне стоит это аккуратно настроить, ибо есть много таких операций, а по поводу сохранения неуникальных значений я кажется не оставил какой-то флаг при объявлении схемы, попробую эти способы:
https://stackoverflow.com/questions/9024176/mongoose-duplicates-with-the-schema-key-unique#10167170
Bandikoot
Anonymous
Bandikoot
1 и -1 это возрастание/убывание. для булевых индексов не играет никакой роли. для дат и строк поинтереснее. например, индекс по дате с -1 будет держать в начале наиболее свежие даты и документы, в которых они прописаны
Bandikoot
ещё нюанс: индексы стоит выбирать таким образом, чтобы ваши запросы, попадая в них, сразу сильно ограничивались по числу перебираемых документов
взять тот же индекс по дате: если у вас поиск документов с датой в диапазоне одного дня, а во всей коллекции документов за год, то монга оставит для перебора 1/365 всех документов
Bandikoot
про булевые индексы: если в коллекции много документов, у которых булевое поле в true, то поиск документов с true будет неэффективен, их же всё равно много. а вот поиск документов с полем в false — да, эффективен, потому что отсекается бóльшая часть
Bandikoot
короче, селективность это называется
Anonymous
Galeups
всем привет, подскажите пожалйста по монгус populate, не хочет работать
Galeups
ка кправильно сохранять?
Galeups
схема
_id: Schema.Types.ObjectId,
user: { type: Schema.Types.ObjectId, ref: User }
Galeups
сохранаяю
_id: new mongoose.Types.ObjectId(),
user: user._id
Galeups
в ответ приходит пустота
Document.find({}).populate('user').exec((err, docs) => {
res.send(docs);
});
Galeups
если получаю без populate() то нормально все возвращает
Vova
А структура какая документа?
Vova
А вижу
Vova
Ты уверен что тебе нужен populate? Что ты хочешь сделать?
Vova
Выборку без поля _id?
Vova
Если да то тебе нужно юзать projection
Galeups
я ведь правильн понимаю? что я в элементе храню _id пользователя, и при популайт он мне должен выдать там этого самого пользователя. И объект уменя получится с вложением
Galeups
просто не очень понятно, при ref, эта самая ссылка должна быть в обеих моделях?
Vova
Galeups
чтобы мне возвращался объект, но чтоб в одном из его элементов были доки из другой коллекции
Galeups
грубо говоря нужна связь на доки в другой коллекции
Galeups
как описано здесь
https://mongoosejs.com/docs/populate.html
Galeups
но что то повторить не могу
Galeups
в параметре ref, укзываем коллекцию, как она называется в бд? или все же модель
AstraSerg
Galeups
спасибо, буду знать, но уже все на монгусе ((
AstraSerg
во http://excellencenodejsblog.com/mongoose-aggregation-count-group-match-project/
Galeups
но это мне кажется выборки из одной коллекции, не?
Galeups
уууф, заработала))) всем спасибо! 👍
оказывается надо было в ref указывать имя коллекции, а я указывал имя модели ))
AstraSerg