Евгений
Artem
Как же заебала монга со своей неоднозначностью и багами)
Nick
Евгений
мне ванильно проще будет, хотя в базе конечно же более правильно
Николай
Всем привет, есть ли в монгодб возможность генерировать objectid такой же структуры, как uuid/guid?
Николай
Ну или иной вопрос. Я хочу выстроить следующую логику: у меня есть книги, а есть жанры. Для каждой книги я храню массив Id шников, существующих в базе жанров. При запросе конкретной книги я хочу получать уже не массив Id, а массив полноценных объектов(id, name). При описании схемы я указал, что genres - ref genre. НО, при попытке populate в чистом виде(populate(genres'')), я получаю ничего) если в схеме данных тип для genres указать, как массив схемы genre, то я получаю объекты, все работает, как надо, но. Таком случае я не могу запись в базу сделать, как раньше, теперь монго ожидает, что отправлю не массив строк, а массив объектов. Это не даёт мне спать -_-
Mike
Николай
Это прескорбно
Daniil
Daniil
Ну или иной вопрос. Я хочу выстроить следующую логику: у меня есть книги, а есть жанры. Для каждой книги я храню массив Id шников, существующих в базе жанров. При запросе конкретной книги я хочу получать уже не массив Id, а массив полноценных объектов(id, name). При описании схемы я указал, что genres - ref genre. НО, при попытке populate в чистом виде(populate(genres'')), я получаю ничего) если в схеме данных тип для genres указать, как массив схемы genre, то я получаю объекты, все работает, как надо, но. Таком случае я не могу запись в базу сделать, как раньше, теперь монго ожидает, что отправлю не массив строк, а массив объектов. Это не даёт мне спать -_-
Если правильно описана схема и правильно вызывается populate, то это будет работать
Николай
Daniil
Николай
Так и делал...
Anatoly
Привет. Можно ли ка кто в mongo сделать группировку по текстовому полю без учёта регистра. типа "Name" и "name" чтобы группировались в один элемент ?
Nick
WolderVsrat
Nick
в группировке примерно так должно выглядеть _id: {$toLower: "$item"}
WolderVsrat
Хотя это можно сделать и в самой группировке точно
Anatoly
Anatoly
[
{
"_id": "5feb15635f245ca00c9c9ec4",
"name": "Репетитор по математике"
},
{
"_id": "60098c0454ac39afb1caab36",
"name": "Репетитор по математике"
},
Anton
Nick
Nick
там есть такое неприятное замечание https://docs.mongodb.com/manual/reference/operator/aggregation/toLower/#behavior
$toLower only has a well-defined behavior for strings of ASCII characters.
Anatoly
Понятно, спасибо :)
WolderVsrat
Тогда вместо туаппер/ловер свою функцию написать придется и обернуть ею
Возможно ли так, хз, пока не пробовал.
Nick
нет, агрегации с произвольными js функциями не работают
Viktar
у меня есть две одинаковых коллекции
phoneCatalog_old 301555514/93GB
phoneCatalog 301555514/76GB
меня смущает что у них разные размеры, хотя данные на 100% совпадают
Viktar
индексы тоже одинаковые
Дмитрий
yopp
yopp
я так понимаю что из _old сделали вторую коллекцию, скорее всего разом, а значит данные легли более оптимально, плюс нет пула пустых страниц хранилища
yopp
по сути вы сделали то, что делает compact :)
Viktar
yopp
ключевое слово «проапдейчена»
yopp
update это write операция, а так как WT это Copy On Write хранилище, оно при обновлении создало новые страницы для обновлённых данных, если старые не успели попасть в пул
yopp
*если старые не успели попасть в пул, были выделены новые с диска
Viktar
Спасибо. Не ожидал, что это так будет отличаться по месту на диске
Viktar
почти 20% разницы
yopp
там много нюансов, в том числе как сказал @yatoba ещё и сжатие
Viktar
сжатие идентичное
Viktar
block_compressor=zstd
Евгений
Всем привет, дайте ссылку как максимально увеличить скорость запросов для mongoDB/Mongoose/NodeJS
Евгений
один ко многим отсутствуют
Nick
🫥
Всем привет,только начал своё знакомство с mongo , подскажите пожалуста, как мне обратится к списку actions в этом случае
Saidkamol
через точку
Saidkamol
я findOne использовалбы
🫥
через точку
а точку то куда внутри скобок или снаружи , там вроде если список следует то нужно ещё и квадратные скобки ставить
Saidkamol
db.AC.findOne({filterkey:”filtervalue”}).actions
Saidkamol
Saidkamol
по _id
Saidkamol
это не тебе пример я отправлял
Saidkamol
значит одно общее проперти должно быть
Saidkamol
у твоих продуктов
Saidkamol
filterkey -_id filtervaluy -ObjectId(12345678..)
Saidkamol
Saidkamol
🫥
А так тут квадратных скобка дело спасибо!!)
kk
всем привет.
mongo3.6, в репликасете три ноды - одна primary и две secondary. у клиента на запись стоит writeConcern: majority. одна из секондари нод отваливается в recovery.
как вычисляется majority в таком случае ? в доке описана ситуация только с тремя активными нодами:
https://docs.mongodb.com/v3.6/reference/write-concern/#calculating-majority-for-write-concern
crazzy_lazzy=)
Всем привет, подскажите пожалуйста по поводу projection, правильно ли я понимаю, что формат записи {"field": 1} ничем не отличается от {"field": "$field"} ?
yopp
kk
нипанятно ) клиент на попытку записи вернёт ошибку?
yopp
Да, операция записи вернёт ошибку writeConcern timeout
yopp
надо посмотреть какие значения wtimeout по-умолчанию у драйверов, если они вообще выставлены
yopp
если не выставлены, то операция не получит ack пока не появится majority
Viktar
самое интересное, что во вторую колекцию добавилось 800 тыс записей, и после компакта она на 1 гб тоже уменьшилась
Viktar
стала 75 гб
🫥
всем привет, подскажите пожулуйста как правильно обратится в данном случае к списку actions?
Александр
Добрый вечер. Подскажите, пожалуйста, в каких случаях лучше использовать mongoDBDriver, а в каких Mongoose ?
Александр
Вывод: c монгой всегда лучше использовать mongoose ?