R-lion
R-lion
я решил проблему
Eva🇺🇦
🤟🤟
R-lion
Я в шоке
R-lion
вот я добавил toArray
Alex
Всем привет! Ребят а может кто-то подсказать касательно производительности mongo_db. Есть агрегация и она работает не так быстро как бы хотелось. Там порядка 7 млн записей в коллекции. Но предполагается намного больше в будущем. Так вопрос в том, можно ли оптимизировать эту агрегацию или стоит изменить структуру данных? хотя меня не покидает мысль о том, что лучше использовать другую БД для таких целей. Пример агрегации в файле
Alexander
Йо, у кого-нибудь было такое, что show dbs показывает мои бд, но в MongoDB Compass их нет?
Alexander
mongod запускается в WSL, Compass на Windows. С утра все нормально работало.
Alexander
Отбой, сам виноват. Оказалось на фоне в Windows работал собственный процесс mongod, вот Компас к нему и коннектился.
Антон
подскажите, пожалуйста, как лучше хранить и делать выборку по ip? md5 ip адреса подойдет или есть какой то более оптимальный способ?
Антон
Что мешает хранить просто строкой? И вопрос надо делать выборки по подсетям?
да по сути ничего. я думал может есть какой то более оптимальный способ... по строке искать это наверно сильно затратный спосов
Nick
Быстрее только числом хранить и по нему индекс строить
Антон
Andrey
подскажите, пожалуйста, как лучше хранить и делать выборку по ip? md5 ip адреса подойдет или есть какой то более оптимальный способ?
ipv4 числом, причем, если загружать данные через mongoimport mongodb иногда делает тип int32, а иногда int64, ну а ipv6 строкой.
Mike
Осваиваю mongodb. Пишу приложение nestjs + mongoose + typescript. У меня есть постоянная проблема с типизацией виртуальных полей. Приведу пример и объясню суть. К примеру есть схема юзера: @Schema({ toJSON: { virtuals: true }, toObject: { virtuals: true } }) export class User { @Prop({ required: true }) email: string; @Prop({ required: true }) password: string; } когда я получаю документ юзера я имею такую структуру: { _id: 61205e32ac6ca237401712ec, email: 'example@example.net', __v: 0, id: '61205e32ac6ca237401712ec' } Первые три поля как я понимаю реальные поля, которые хранятся в базе, а последнее поле "id" - виртуальное. Так вот, проблема в том, что когда я получаю этот объект юзера, я ставлю ему тип как User(из схемы) а там кроме email и password полей никаких больше не указано, по этому тайпскрипт начинает ругаться, что поля "id" нет в типе User. Окей, пошел я в офф. докумангуста, смотреть что-там по тайпскрипту. В доках пишут, что можно создать интерфейс вместе со схемой: interface User { name: string; email: string; avatar?: string; // возможно сюда нужно добавлять поля "_id" и "id" для каждой схемы? } // 2. Create a Schema corresponding to the document interface. const schema = new Schema<User>({ name: { type: String, required: true }, email: { type: String, required: true }, avatar: String }); ...и вот тут я подумал, что в интерфейс как раз можно добавить поля "_id" и "id" Но здравый смысл мне подсказывает, что это плохое решение, так как айдишники нужно в каждой схеме дублировать, и что должно быть другое решение, которое я так и не смог найти. Подскажите пожалуйста как вообще это грамотно решить?
Mike
Vladimir
Осваиваю mongodb. Пишу приложение nestjs + mongoose + typescript. У меня есть постоянная проблема с типизацией виртуальных полей. Приведу пример и объясню суть. К примеру есть схема юзера: @Schema({ toJSON: { virtuals: true }, toObject: { virtuals: true } }) export class User { @Prop({ required: true }) email: string; @Prop({ required: true }) password: string; } когда я получаю документ юзера я имею такую структуру: { _id: 61205e32ac6ca237401712ec, email: 'example@example.net', __v: 0, id: '61205e32ac6ca237401712ec' } Первые три поля как я понимаю реальные поля, которые хранятся в базе, а последнее поле "id" - виртуальное. Так вот, проблема в том, что когда я получаю этот объект юзера, я ставлю ему тип как User(из схемы) а там кроме email и password полей никаких больше не указано, по этому тайпскрипт начинает ругаться, что поля "id" нет в типе User. Окей, пошел я в офф. докумангуста, смотреть что-там по тайпскрипту. В доках пишут, что можно создать интерфейс вместе со схемой: interface User { name: string; email: string; avatar?: string; // возможно сюда нужно добавлять поля "_id" и "id" для каждой схемы? } // 2. Create a Schema corresponding to the document interface. const schema = new Schema<User>({ name: { type: String, required: true }, email: { type: String, required: true }, avatar: String }); ...и вот тут я подумал, что в интерфейс как раз можно добавить поля "_id" и "id" Но здравый смысл мне подсказывает, что это плохое решение, так как айдишники нужно в каждой схеме дублировать, и что должно быть другое решение, которое я так и не смог найти. Подскажите пожалуйста как вообще это грамотно решить?
Мне предложили юзать DTO, то есть пишешь ещё один класс, и кстати там ещё обвязываешь ApiProperty
Vladimir
export class UserDto extends TimestampsDto { @ApiProperty({ example: '610d5969377c743463ef3aa1', }) _id: string; @ApiProperty({ example: 'User', }) name: string; @ApiProperty({ example: 'test@test.test', }) email: string;
Den
Подскажите, в чем может быть проблема? sudo systemctl status mongod ● mongod.service Loaded: not-found (Reason: No such file or directory) Active: inactive (dead)
Den
sudo systemctl enable mongod.service Failed to execute operation: No such file or directory
Den
systemctl list-unit-files --type=service mongodb.service enabled
Den
Ну и, соответственно... Mongoose connection "error" event fired with: { MongoError: failed to connect to server [localhost:27017] on first connect
Михаил
Подскажите, в чем может быть проблема? sudo systemctl status mongod ● mongod.service Loaded: not-found (Reason: No such file or directory) Active: inactive (dead)
https://askubuntu.com/questions/929198/fail-to-start-mongod-service-but-mongodb-service Вот здесь посмотри, особенно права на папку
Denis
Ребята, подскажите пожалуйста, есть инструменты для автоматического построения er диаграмм бесплатные?
Vladimir
Приветствую подскажит кто что делать ? вот таким образом сделал юзера, => db.createUser({user:"***",pwd:"***1",roles:[{role:"userAdminAnyDatabase",db:"admin"}]}) получил ответ =>ccessfully added user: { "user" : "***", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] } Не пускае (( что делать ?
Хикмат Тураев
привет ребята
Хикмат Тураев
что делать
Александр
Добрый день. Подскажите пожалуйста, импортирую json с рабочего стола. Почему не получается ?
Joe
а в ручную работает ?
Это точно вопрос?)
Александр
Это точно вопрос?)
Утверждение )
Александр
Просто, не пойму, как импортировать
Александр
Это точно вопрос?)
Дело в строчке, а не в коллекции
Joe
Просто, не пойму, как импортировать
Я вообще через mongorestore делаю, да и не джсон а бсон))
Joe
Вижу Поэтому и говорю Джсон не вывезет все мои данные в 1 файл пихать)
Joe
а metadata не нужна?*
Нет по сути
Александр
Что то не получилось и с bson
Мағжан
Всем привет я новичек по Монго и мне не понятно один момент. У меня есть колекции Users, Country. И мне нужно обновить колекцию Users, а именно добавить countryId. Это вроде легко с помощью $set. Так вот если я таким образом просто добавлю новый field к записи то сохранится ли связки между коллекциями? что бы можно было получить expand версию юзера и в нем была вся информация? За ранее спасибо
Kaizoku
Привет. Вопрос имеется коллекция { time: number, name: string, data: object { items1: object[] {id: number, classId: number}, items2: object[] {id: number, classId: number} } Есть ли способ найти все записи где в items1 || items2 имеется объект где classId in search[]
Kaizoku
Лимитировать это дело 100 записей. И сортировать по time
Kaizoku
Записей 3миллиона и размер гигабайт
Александр
добрый день. Подскажите пожалуйста.... match - это полное совпадение в строке, а мне нужно, например вернуть все документы , где в значение поля "arr_ttt" содержится "arr", как это написать ? Пробовал через match, regex, in - не получилось
Aryn
Всем привет! Подскажите, есть коллекция accounts. Как выполнить поиск по _id? Пример: 61251ce9472ea681c8d7e7fb
Aryn
не получается
fλüggåɘnk∂€čhiœßøλ∫ên
я пытался find({_id: ...})
Покажи полный запрос как пытаешься
Aryn
Покажи полный запрос как пытаешься
Да забей, я уже сделал по-другому :D
Pavel
Добрый вечер всем. Здесь есть фулстэк разработчики nodejs mongodb express?
Александр
https://docs.mongodb.com/manual/reference/operator/query/regex/
Спасибо, пробовал так - не получилось db.products.find( { sku: { $regex: /789$/ } } )
Александр
Регекс правильный?
Сделал так и сработала: await Sessions.findOne({ centraдPath: new RegExp(modelName, 'gi') }) ?
Александр
ну то есть получилось?
Только это через new RegExp
tmarket support
Всем привет, кто может подсказать какая операция будет быстрее? f1() { mongo.CountDocumenets() mongo.UpdateOne() } f2() { mongo.FindOneAndUpdate() }
tmarket support
Просто findOneAndUpdate() возвращает ещё и документ Хочу перед обновлением документа сделать проверку на существование
Artem
Привет, а возможно как то создать массив елементов в Mongoose например posts: [PostSchema], пробую но падает ошибка throw new TypeError('Invalid value for schema path `' + fullPath + ^ TypeError: Invalid value for schema path posts.type, got value "undefined"
Artem
Что такое массив элементов в твоем понимании? Поле в документе, которое является массивом?
Да, но как то возможно 'ограничить' массив что в него можно добавлять элементы только типа Post
Михаил
Да, но как то возможно 'ограничить' массив что в него можно добавлять элементы только типа Post
Ну, для этого тебе нужно использовать TS обертки над монгусом В JS монгусе нет такого насколько я знаю
Artem
Я в доках прочитал такое const ToySchema = new Schema({ name: String }); const ToyBoxSchema = new Schema({ toys: [ToySchema], buffers: [Buffer], strings: [String], numbers: [Number] // ... etc }); И подумал можна