Pavel
например, у нас есть 1 млрд записей с составным индексом: "ar.bt.err", где фильтруемое поле "err", количество операций увеличивается кратно вложенности: 1 * 3 = 3 млрд, если не использовать .skip() или .limit() курсор будет идти именно 3 млрд раз если бы индекс был просто "err", то естественно было бы 1 * 1 = 1 млрд.
Вот по этому я и сомневаюсь что сложить все в одну коллекцию прям будет удачным решением, но все обычно зависит от задачи конечно, либо сразу по индексу выбрать документ с нужным языком, либо по мимо индекса заниматься еще какими то манипуляциями что бы отсечь ненужное
Aleksandr
Pavel
Это в теории! На практике бизнес сразу придумает кейс, когда придётся агрегировать с двух баз, например: нет описание на китайском выводи на английском😀 и сложи в один селект
А в один селект точно бизнес сложить не попросит, но в целом да я и говорил что от задачи зависит. Но я обычно делаю отдельными таблицами(коллекциями)
Dmitry
$project
Vladyslav
сделать это через массив + сортировка
Матвей
Ребят, почему по дефолту mongodb создает базу с названием test? И как ее изменить?
Nick
с такой стурктурой далеко не уедете, но посмотрите на $objectToArray и $size
Dmitry
Ребят, почему по дефолту mongodb создает базу с названием test? И как ее изменить?
Не удалось правильно до конца распарсить строку подключения либо имя не было передано, поэтому используется значение по умолчанию
Роман
Ребята
Роман
Я вот не пойм
Роман
Что хостит базу данных? Компас нельзя закрывать? Или шелл хостит?
Роман
Или её хостит какой-то скрытый процесс
Роман
Обязательно их держать открытыми?
Роман
endlessNight
Нет, не обязательно. Поищи в диспетчере задач процесс mongo… уже точно не помню. Это и будет твой хост дб
Роман
То есть какой то фоновый процесс хостит
endlessNight
Да
Роман
кажется это mongod
Роман
Спасибо
Роман
Десяток окон несколько затрудняет разработку...
Artur
When I want to auto generate models from already existing mongodb collections by inspectdb it raises : # The error was: 'NoneType' object is not subscriptable, Please, any solutions
Роман
пытаюсь создать функцию, которая будет возвращать два случайных документа из двух коллекций. Помогите.
Роман
у меня есть сомнения насчёт того, что промис реагирует на aggregate
Роман
спасибо.. ночью как-то вчера в одну строчку бахнул, вроде просто вернул promise.all
Alexander
В документации не могу найти информацию о размерах типов данных. Примерно понятно, что Int32 занимает 32 бита и т.п., тем не менее, хотелось бы иметь возможность определить или оценить размер документа до вставки в коллекцию. Может кто ссылкой помочь?
Alexander
Object.bsonsize(db.test.findOne({type:"auto"}))
По факту то да, есть возможность проверить. Мне бы хотелось в принципе при проектировании размер прикинуть, основываясь на типах свойств.
Vladyslav
По факту то да, есть возможность проверить. Мне бы хотелось в принципе при проектировании размер прикинуть, основываясь на типах свойств.
есть примерные данные которые будут ходить? если есть, то просто пробуете добавить и видите что все ок и не нужно добавлять эту проверку
Alexander
Типа такого вы хотите https://stackoverflow.com/questions/1248302/how-to-get-the-size-of-a-javascript-object ?
Вооще типа такого. Но по Монге такого не наблюдаю. Возможно стоит в спецификации BSON посмотреть, но тоже пока не сориентировался.
Vladyslav
Это как запасной вариант рассматривается )
вопрос: что за юзкейс: 1) ожидаете мега большие обьекты? - GridFS API можна сразу смотреть 2) просто проверка - нету смысла ничего делать
Vladyslav
Например, место на диске оценить
оценивется место колекции\бд целой. А 1 обьекта - смысла никакого нету)
Nick
Например, место на диске оценить
делается временная коллекция, в нее закидываете пару тыщ-лям доков, и смотрите статистику по коллекции - там и размер средний объекта и сколько места занимают и сколько реально занимают на диске с компрессией
Nick
Так и понял, что только эмпирическим путём можно выяснить.
не эмпирическим уже выше скинули про bson, оно же - добавить 1 документ в пустую коллекцию
S.
Всем привет. Нужен совет и мнение экспертов по монге. У нас дилема. Хранить документы с отсутсвующими полями у которых нет значений, или с пустыми значениями (сервис на Go), типа пустые строки, false, 0 и т.п. Коллегу смущает что при поиске придётся везде передавать запросы типа: field: null, тогда как field: "" более удобен и очевиден. Какой минус в том чтоб хранить поля с такими значениями, кроме не значительного увеличения размера базы?
S.
Мы сравнили документы, у нас получилась разница в ~400 байтов, но это получается что просто добавилась информация о полях?
S.
поля не будет в монго
Не, у нас выбор. Либо добавлять тег `omitempty`или нет. С этим тегом поля не сохраняются в БД.
S.
Касаемо самой монги, какова разница между отсутствующими полями, и полями имеющими значения типа пустых строк, 0, false и т.п. На сколько это будет сказываться на поиске?
Vladyslav
Мы сравнили документы, у нас получилась разница в ~400 байтов, но это получается что просто добавилась информация о полях?
если все остальные свойства и типы одинаковые - то разница, что в 1 доке есть свойство, во 2 пустое(нету).
Vladyslav
https://stackoverflow.com/questions/18657071/why-mongoid-doesnt-save-boolean-as-true-or-false
S.
@Waldes7 вы бы как поступили на нашем месте? Передавали бы пустые значения или вообще не передавали бы поля.
Vladyslav
Да
со стороны кода хорошо иметь что-то, потому что это, все же, описание какой-то логики: obj.Property = false и тд но стоит помнить что false, null и тд не будут присутствовать уже в монго
Vladyslav
В случае Go поле всегда будет false.
в большинстве языков bool по дефолту false
S.
в большинстве языков bool по дефолту false
А мы сможем в монге искать отсутствующие bool поля по запросу вида field: false?
Viktar
Может я не совсем правда я понял
Viktar
Все отсутствующие поля это нул. Нул не равно фалс
S.
Ну т.е. не сможет. Соответственно для bool полей надо ставить явно значение false
Viktar
Для все полей, если вам надо значение, то его надо проставлять.
Taras Kosyi (ง•̀o•́)ง
Привет У меня есть массив тегов, по которому я хочу искать объекты У моего объекта есть филд массив, допустим tags Если этот филд имеет хотя бы один тег из моего массива, по которому я ищу, я хочу вернуть этот документ Я сначала подумал про оператор $or, но не нашел такого в списке операторов для поиска по филду массиву Не подскажите кверю?
Mark
Привет всем, подскажите, я могу _id изменить на свое название?
Taras Kosyi (ง•̀o•́)ง
$in оператор
даже если филд, по которому ищу — массив?
S.
зачем вам пустые поля?
Чтоб искать по пустом полю
S.
Типа ребятам удобнее делать запросы вида field:""
S.
🤷‍♂
Alexandrr
даже если филд, по которому ищу — массив?
не "даже", а "только если". https://www.mongodb.com/docs/manual/reference/operator/query/in/#examples
S.
Вот изучаю этот вопрос. Что хуже или лучше