Eva🇺🇦
Ребят, очень нужен ответ на данный вопрос Есть у aggregate подводные какие-то? Его норм использовать, если с БД ну сотку доков тащу? Пока мне нравится мысль, что там есть агрегация, которая может результат пайплайна сразу засейвить в бд (в будущем может пригодиться). Но пайплайн может же бд нагрузить. В таком случае есть смысл использовать пайплайн только чтобы объеденить документы (джоин), а преобразить на сервере результат. Расскажите о проблемах, с которыми вы стыкались используя aggregate
Eva🇺🇦
Ещё интересует где можно глянуть complexity разных пайплайнов
Sayan
у меня монгодб пишет Server at [адресс сервера с портом] reports maximum wire version 5, but this version of the Node.js Driver requires at least 6 (MongoDB 3.6)
Sayan
как можно решить?
Kinderwond
как можно вытащить данные с .wt файла со сделанного snapshot'a? наткнулся на wt cli, но пока что безуспешно... мб где-то есть exampl'ы экстракта данных с помощью этой cli?
yopp
https://www.percona.com/blog/2021/05/18/wiredtiger-file-forensics-part-2-wt-dump/
Kinderwond
https://www.percona.com/blog/2021/05/18/wiredtiger-file-forensics-part-2-wt-dump/
Уже лучше, спасибо но уже сыпет следующий еррор WT_SESSION.open_cursor: unknown compressor 'snappy': Invalid argument не подскажите куда копать? (wt cli ставил через apt), через locate пока не нахожу конфигурацию wt cli гугл тоже пока не помогает, возможно через wt create? но тогда какой синтаксис uri конфига должен быть? (желательно экзампл)
yopp
WiredTiger 10.0.0: (April 12, 2021) корректно работает с 5.0.7
Kinderwond
Null
5.0.7 (Apr 11) • 4.4.13 (Mar 7) ◦ 4.2.19 (Mar 7) ℹ️ Вышла версия 5.0.7 Что нового в 5.0 (PDF) • Наше сообщество: @mongodb_ru • Решение проблем с MongoDB по подписке • Документация • Официальные курсы (Бесплатно) Stable: 5.0.7 (Apr 11) Bugfix: 4.4.13 (Mar 7), Legacy: 4.2.19 (Mar 7), 4.0.28 (Jan 11, ☠️ Apr '22) По вопросам размещения вакансий, платной поддержки и покупки лицензий пишите @dd_bb ☠️ 3.6.23 (Mar ’21), 3.4.24 (Jan ‘20), 3.2.22 (Dec ’18), 3.0.15 (May ’17)
Flake
Каким образом я могу посмотреть записи в коллекции, которые никогда не встречались в полях других документов из других коллекций?
Eva🇺🇦
В чем заключается разница между $unset: { _id } и $project: { _id: 0 }? Первое производительнее, кстати?
Artem
id это копия _id ? можно юзать id для сохранения связей/поиска ?
Aleksey
Привет всем! Есть вопрос по авторизацию и RBAC в MongoDB 4.2. Сейчас прикручиваю авторизацию SCRAM к ReplicaSet кластеру. Включил опции transitionToAuth: true и authorization: enabled в секции security, включил авторизацию через keyFile для реплик. Добавил пользователей в базу admin пользователя user db.createUser({user: "user", pwd: "password", roles: [{"role": "dbAdmin", "db": "dataBase"}]}); Пробую авторизоваться с включенной опцией transitionToAuth: true и строкой подключения mongodb://user:password@192.0.2.26:27017,192.0.2.27:27017,192.0.2.28:27017/dataBase?replicaset=rs0&authMechanism=SCRAM-SHA-256&authSource=admin - авторизация работает(при неправильном пароле авторизация не проходит), запросы в базу dataBase проходят. Далее последовательно переключаю transitionToAuth на всех репликах в false, подключаюсь строкой из прошлого сообщения - авторизация проходит, но запросы в базу вываливаются с ошибкой not authorized on dataBase to execute command. В документации не описано такого поведения, но я подозреваю что не наследуются роли, записанные в базу admin. Подскажите пожалуйста куда покопать дабы починить выдачу ролей.
/..\
всем привет! не могу залогиниться, может было так у кого-то ? или я особенный
/..\
Vpn в помощь
раньше то без него работало
Maksim
раньше то без него работало
Раньше и санкций не было
Антон
Всем привет. Я новичок в монге. Поэтому извиняюсь за возможно тупой вопрос. Можете подсказать по следующей проблеме: Допустим есть классическая задача для обхода графа ($graphLookup). Взял пример про аэропорты из документации - https://www.mongodb.com/docs/manual/reference/operator/aggregation/graphLookup/#across-multiple-collections { "_id" : 0, "airport" : "JFK", "connects" : [ "BOS", "ORD" ] } { "_id" : 1, "airport" : "BOS", "connects" : [ "JFK", "PWM" ] } { "_id" : 2, "airport" : "ORD", "connects" : [ "JFK" ] } { "_id" : 3, "airport" : "PWM", "connects" : [ "BOS", "LHR" ] } { "_id" : 4, "airport" : "LHR", "connects" : [ "PWM" ] } Как сделать обход здесь - понятно. Но возникает вопрос, а что надо делать если хочется кроме факта самой связи (в данном случае аэропортов) хранить какую-нибудь дополнительную информацию о связи. Например, тип связи: long - если аэропорты удалены более чем на 1000км и short - если ближе? Пример синтетический, и к аэропортам притянут за уши, поэтому прошу тапками не кидаться) Пробовал такой вариант: { "_id": 0, "airport": "JFK", "connects": [ {"Name": "BOS", "Type": "short"}, {"Name": "ORD", "Type": "long"} ]} { "_id": 1, "airport": "BOS", "connects": [ {"Name": "JFK", "Type": "short"}, {"Name": "PWM", "Type": "short"} ]} Поиск проходит успешно, но не знаю на сколько каноничный это подход для монги, не ляжет ли он на промышленном объеме данных? А задача по ощущениям достаточно распространенная, поэтому и решил спросить, вдруг кто-нибудь сталкивался.
Alexander
Всем привет. Я новичок в монге. Поэтому извиняюсь за возможно тупой вопрос. Можете подсказать по следующей проблеме: Допустим есть классическая задача для обхода графа ($graphLookup). Взял пример про аэропорты из документации - https://www.mongodb.com/docs/manual/reference/operator/aggregation/graphLookup/#across-multiple-collections { "_id" : 0, "airport" : "JFK", "connects" : [ "BOS", "ORD" ] } { "_id" : 1, "airport" : "BOS", "connects" : [ "JFK", "PWM" ] } { "_id" : 2, "airport" : "ORD", "connects" : [ "JFK" ] } { "_id" : 3, "airport" : "PWM", "connects" : [ "BOS", "LHR" ] } { "_id" : 4, "airport" : "LHR", "connects" : [ "PWM" ] } Как сделать обход здесь - понятно. Но возникает вопрос, а что надо делать если хочется кроме факта самой связи (в данном случае аэропортов) хранить какую-нибудь дополнительную информацию о связи. Например, тип связи: long - если аэропорты удалены более чем на 1000км и short - если ближе? Пример синтетический, и к аэропортам притянут за уши, поэтому прошу тапками не кидаться) Пробовал такой вариант: { "_id": 0, "airport": "JFK", "connects": [ {"Name": "BOS", "Type": "short"}, {"Name": "ORD", "Type": "long"} ]} { "_id": 1, "airport": "BOS", "connects": [ {"Name": "JFK", "Type": "short"}, {"Name": "PWM", "Type": "short"} ]} Поиск проходит успешно, но не знаю на сколько каноничный это подход для монги, не ляжет ли он на промышленном объеме данных? А задача по ощущениям достаточно распространенная, поэтому и решил спросить, вдруг кто-нибудь сталкивался.
хороший вопрос, и задан хорошо. Даже обидно, что ответить не могу :(
Nick
id это копия _id ? можно юзать id для сохранения связей/поиска ?
Нет, _id это обязательное служебное поле primary key в монге, по которому создантся уникальный индекс всегда при создании коллекции. Id - пользовательское поле и все зависит от вас в плане использования, и оно будет только если вы явно его создаете
Artem
Мне когда-то говорили не называть кастомное поле id , потому что оно "системное"
Nick
Мне когда-то говорили не называть кастомное поле id , потому что оно "системное"
Тут думаю имели ввиду что уже итак есть системное поле для этих целей
Гена
всем привет столкнулся с таким кейсом - после удаление документов диск на ОС не освободился. Монга держит данные на будущее судя по всему Как можно освободить место ? помимо репейрДБ)))
Nick
Компакт вроде не ВТ не работает
там прям в первых строках On WiredTiger databases, this command will release unneeded disk space to the operating system.
Гена
там прям в первых строках On WiredTiger databases, this command will release unneeded disk space to the operating system.
Ну да, как вариант нагуглил что можно поресинкать ноды Либо перезапустить кластер целиком
Leonid
Коллеги, добрый день! Начали погружаться в использование Mongo, возник вопрос: если у нас есть требование по ведению полного аудита изменения параметров объекта: кто и когда изменил поле и с какого значения на какое, то есть какой-нибудь стандартный подход, как это можно сделать? В голове как аналог SCD2 (SCD4) для классических БД, но возможно есть более нативный способ
karrtopelka
здравствуйте, подскажите пожалуйста, как мне localfield по условию возвращать строку?
P1GAS
@dd_bb, @yatoba
Sheff
Здравствуйте, подскажите как можно сделать выборку в случайном порядке из коллекции?
karrtopelka
а никак это же джойн
а как быть тогда? 😅
Sheff
без фильтра файнд, разве нет?
может я не совсем правильно выразился, нужно получить не одну запись а сразу несколько перемешанных, я не особо знаю mongo (
Eva🇺🇦
здравствуйте, подскажите пожалуйста, как мне localfield по условию возвращать строку?
там должно быть название филда, идентичный филд должен быть в другой бд потом в пайплайне делай свое условие то же самое будет, что ты хочешь
Eva🇺🇦
а как быть тогда? 😅
то есть сначала соедини две коллекции через lookup а потом через match фильтруй
Sheff
условие не задавай твой фильтр тупо {}
оно получается по порядку создания документов. ps Использую не js, python motor
Sheff
$sample
спасибо, вроде то что надо, а чтобы все документы выбрать это только нужно считать вначале и указывать size под количество записей? или может можно по другому?
Daniil
да
обычно можно 0 подсунуть в size для этих целей, но с этим оператором не прокатит но если все нужны, то мб проще уже в коде перемешать
Sheff
обычно можно 0 подсунуть в size для этих целей, но с этим оператором не прокатит но если все нужны, то мб проще уже в коде перемешать
python motor же не возвращает массив с записями, можно конечно в 2 цикла сделать, просто думал что встроенное есть как в мускуле
Валерий
как в mongoose провалидировать пару значений (имя, почта) на уникальность ?
Yuriy
Доброй ночи, пытаюсь установить mongodb последней версии на CentOS 7 согласно официальной документации, но возникает ошибка как на фото выше. Кто знает в чем может быть проблема? Кто с этим сталкивался?
Валерий
unique: true, если не ошибаюсь
индексы не валидируют
Konstantin
как в mongoose провалидировать пару значений (имя, почта) на уникальность ?
email: { type: String, // (зависит от того, что тебе надо unique: true }
P1GAS
Валерий
email: { type: String, // (зависит от того, что тебе надо unique: true }
мне нужно проверить есть такая пара в базе или нет
Konstantin
мне нужно проверить есть такая пара в базе или нет
Ну так let mail = db.findOne({ email: yourEmail }) if(mail) { console.log(“такая почта уже добавлена ”) } else { console.log(“такой почты нет”) }
P1GAS
мне нужно проверить есть такая пара в базе или нет
Можно findOne заюзать, чтобы найти существующую запись
Konstantin
findOne лучше подходит
Я и поставил. Просто не дописал
Konstantin
👀
😇
Валерий
@P1GAS @superman_da спасибо
P1GAS
@P1GAS @superman_da спасибо
Обращайтесь)
Mike
https://ru.stackoverflow.com/questions/1403002/%d0%9f%d0%be%d0%b4%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%bd%d0%b8%d0%b5-%d0%ba-%d0%b1%d0%b0%d0%b7%d0%b5-%d0%b1%d0%b5%d0%b7-%d0%9e%d0%a0%d0%9c-%d0%b8-%d1%84%d1%80%d0%b5%d0%b9%d0%bc%d0%b2%d0%be%d1%80%d0%ba%d0%b0 Народ. Кто нибудь знает решение к данной задаче?
Anonymous
Подскажите, есть такой документ. Первое поле все время разное, и они дополняются. Как забрать все вложенные значения ?
winterfall
Подскажите, есть такой документ. Первое поле все время разное, и они дополняются. Как забрать все вложенные значения ?
Немного непонятно составлен вопрос, в частности "они дополняются" - кто они то? Речь шла только за первое поле Из того, что вижу - похоже на дефолтную запись с userID и его данными Возможно, интересует связка ref: 'model' и document.populate('field') ?
Serhii
Всем привет, при сортировке по полю _id, в случае если несколько айтемов были созданы в одно время, есть ли возможность сравнить еще как-то их айдишники (_id), или в таком случае сортинг ордер всегда будет непредсказуем и нужно подключать кеш "$set":{ "_index":{ "$concat":[ { "$toString":"$eventDateTime" }, "-", { "$toString":{ "$toDate":"$_id" } } ] } } }, { "$sort":{ "_index":1 } }, { "$match":{ "_index":{ "$gt":"2022-04-19T15:19:11.379Z-2022-04-19T15:19:11.000Z" // это для пагинации } }
Vladimir
Добрый день! Возник вопрос. (mongoose) При получении док-та и добавление данных в массив и сохранения сохраняет в массив id и добавляет ещё _id ненужный. Как это исправить?
Vladimir
Vladimir
Ну а для чего он в массиве в элементе находится?
dnacd 🦜
Ну а для чего он в массиве в элементе находится?
https://www.mongodb.com/docs/manual/core/write-operations-atomicity/
Boroda
Всем привет, есть mean приложуха, хочу потестить и залить на vds, только вопрос база монго стоит сейчас локально у меня, как правильно залить ето дело на vds либо использовать хост удал. от самого монго либо лутше подругому?
Vladimir
Он обязательно нужен в моём случае?
dnacd 🦜
Он обязательно нужен в моём случае?
автоинкремент айди не советуют использовать в монге, ты можешь просто его не использовать, в чём проблема