Nick
а в поле img находится base64 картинка или название ее?
ᅠ ᅠ ᅠ ᅠ
а в поле img находится base64 картинка или название ее?
в поле img у меня записывается обычная ссылка на картинку типа String
Nick
Тогда думаю не критично
Іван 🤙
Хеллоу) такой вопросик) если у меня монга забинджена на локалхост (127.0.0.1) на неё в любом случае не смогут попасть из-вне?? или лучше еще и пассворд поставить??? потому что на самом серваке есть логин\пасс просто была трабла, что монга дропалась непонятно почему, тут говорили что её могут дропать, если она смотрит в мир без пароля)
Іван 🤙
Тоесть в аутентификации есть смысл только когда она забинжена на "мир"(0.0.0.0) ?)
AstraSerg
С дргой стороны, включить авторизацию никогда не плохо. На случай, если вы захотите выставить таки её в интернет. Потому что потом в работающем проекте включить авторизацию без давнтайма не получится.
AstraSerg
а кроме этого авторизация полезна для разделения прав между скриптами
Іван 🤙
ага) понял , спасибо большое) доп вопросик) из-за чего еще может дропаться база?, кробе злобных скриптов-хакеров))
Іван 🤙
злобных криворуких разработчиков
😂 ага, это по моей части)
ASPIRIN
настройте логирование и ждите)
AstraSerg
ага) понял , спасибо большое) доп вопросик) из-за чего еще может дропаться база?, кробе злобных скриптов-хакеров))
не могу сказать. Я бы поставил скорее на ошибки по неопытности, но не исключено, что и хакеры конечно. Были ли это злобные хакеры, можете узнать в логах
Іван 🤙
Спасибо всем!😘
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
Определенно не стоит
yopp
We have group for english speaking users: @mongo_db
Anonymous
подскажите, как через монго-шелл добавить всем существующим документам одно и то же поле с постоянным значением?
Anonymous
db.collection.update({}, {$set { 'field' : 'value' }})
только первому добавило поле, что-то не то WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Bandikoot
м, пардоньте
Bandikoot
db.collection.updateMany(
Anonymous
db.collection.updateMany(
благодарю, сработало
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
не очень знаком с моделями, к сожалению. по name есть индекс в коллекции? через db.collection.getIndexes() можно глянуть
ага, есть. Там в моделе еще такое же поле с требованием уникальности но без индекса, его в индексах закономерно нет.
Anonymous
ага, есть. Там в моделе еще такое же поле с требованием уникальности но без индекса, его в индексах закономерно нет.
а, не, нету, это _id [ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "dbname.docs" } ]
Bandikoot
на стороне бд уникальность значений, насколько знаю, проверяется по индексу. если по полю индекс не построен с {unique : true}, то может и будет пропускать дубли
Anonymous
а он-таки не построен, да
я даже не совсем понимаю, что такое индекс, я полагал это для быстрого поиска, если по полю часто ищешь
Bandikoot
я даже не совсем понимаю, что такое индекс, я полагал это для быстрого поиска, если по полю часто ищешь
Это основное его назначение, да. Суть в том, что документ в монге хранится в bson и достаётся из хранилища при обработке запроса. Если, к примеру, запрос с условием по неиндексированному полю, то каждый документ достаётся и проверяется (так называемый collscan). Если по индексированному, то монга будет не доставать документы сразу, а проверять условие в некоем урезанном общем документе, где хранятся только значения индексируемого поля и _id-шники, по которому движок хранилища сразу лезет за подходящим файлом.
Anonymous
если не свезёт, то попробуйте просто руками индекс создать (: https://docs.mongodb.com/manual/reference/method/db.collection.createIndex/
можете подсказать такое - часто ищу по полю с булевым значением, чтобы было true, в индексе указать 1 или -1?
Bandikoot
1 и -1 это возрастание/убывание. для булевых индексов не играет никакой роли. для дат и строк поинтереснее. например, индекс по дате с -1 будет держать в начале наиболее свежие даты и документы, в которых они прописаны
Bandikoot
ещё нюанс: индексы стоит выбирать таким образом, чтобы ваши запросы, попадая в них, сразу сильно ограничивались по числу перебираемых документов взять тот же индекс по дате: если у вас поиск документов с датой в диапазоне одного дня, а во всей коллекции документов за год, то монга оставит для перебора 1/365 всех документов
Bandikoot
про булевые индексы: если в коллекции много документов, у которых булевое поле в true, то поиск документов с true будет неэффективен, их же всё равно много. а вот поиск документов с полем в false — да, эффективен, потому что отсекается бóльшая часть
Bandikoot
короче, селективность это называется
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, эта самая ссылка должна быть в обеих моделях?
Galeups
чтобы мне возвращался объект, но чтоб в одном из его элементов были доки из другой коллекции
Galeups
грубо говоря нужна связь на доки в другой коллекции
Galeups
как описано здесь https://mongoosejs.com/docs/populate.html
Galeups
но что то повторить не могу
Galeups
в параметре ref, укзываем коллекцию, как она называется в бд? или все же модель
AstraSerg
чтобы мне возвращался объект, но чтоб в одном из его элементов были доки из другой коллекции
Я не в курсе монгуса, но ссылка на другой документ - это $lookup из aggregation фреймворка
Galeups
спасибо, буду знать, но уже все на монгусе ((
AstraSerg
спасибо, буду знать, но уже все на монгусе ((
а разве в могусе нет реализации aggragation фреймворка?
AstraSerg
во http://excellencenodejsblog.com/mongoose-aggregation-count-group-match-project/
Galeups
но это мне кажется выборки из одной коллекции, не?
AstraSerg
но это мне кажется выборки из одной коллекции, не?
в этом примре, действительно нет lookup, но если есть аггрегешн, то и lookup есть
Galeups
уууф, заработала))) всем спасибо! 👍 оказывается надо было в ref указывать имя коллекции, а я указывал имя модели ))