Joseph
Бред в общем 😂
Dmitry
Коллеги, подскажите паттерн как красиво организовать удаление полей из модели возвращаемой на клиент? уже страшно ствавить сейчас пока что select: false а в запросе + или в запросе -. Самое безопасное покачто почистить перед отправкой уже
Nick
Коллеги, подскажите паттерн как красиво организовать удаление полей из модели возвращаемой на клиент? уже страшно ствавить сейчас пока что select: false а в запросе + или в запросе -. Самое безопасное покачто почистить перед отправкой уже
если размеры документа небольшие, то перед отправкой на клиент. Если документы тяжелые или содержат множество полей из которых нужно 5-6 то имеет смысл указывать в запросе
Dmitry
докумнты большие. 97 полей нужно. Интересны варианты как сделать красивую реализацию. самое простое это function toObject() delete m.fld1......delete m.fld2
Dmitry
97% полей
Nick
97% полей
тогда неважно где и как. Проще будет в запросе указывать
Dmitriy
ребят, подскажите, пожалуйста, как можно запросом сделать сделующее. есть примерно такой список документов: [ {"name": "name 1", "items": []}, {"name": "name 1", "items": [{"name": "item1"}, {"name": "item2"}]}, {"name": "name 2", "items": [{"name": "item3"}, {"name": "item4"}]}, {"name": "name 2", "items": [{"name": "item3"}]}, {"name": "name 2", "items": []} ] как сделать так, чтобы такая структура развернуть в: [ {"name": "name 1", "item": ""}, {"name": "name 1", "item": "item1"}, {"name": "name 1", "item": "item2"}, {"name": "name 2", "item": "item3"}, {"name": "name 2", "item": "item4"}, {"name": "name 2", "item": "item3"}, {"name": "name 2", "items": ""} ] т.е. так чтобы элементы исходного массива items стали строками выборки + к ним добавились остальные поля выборки? суть такая, что мне нужно сделать дальше $group по item, если поле не пустое, а если пустое, то по name (но это уже не сложно через $project + $cond решается)
Dmitriy
ребят, подскажите, пожалуйста, как можно запросом сделать сделующее. есть примерно такой список документов: [ {"name": "name 1", "items": []}, {"name": "name 1", "items": [{"name": "item1"}, {"name": "item2"}]}, {"name": "name 2", "items": [{"name": "item3"}, {"name": "item4"}]}, {"name": "name 2", "items": [{"name": "item3"}]}, {"name": "name 2", "items": []} ] как сделать так, чтобы такая структура развернуть в: [ {"name": "name 1", "item": ""}, {"name": "name 1", "item": "item1"}, {"name": "name 1", "item": "item2"}, {"name": "name 2", "item": "item3"}, {"name": "name 2", "item": "item4"}, {"name": "name 2", "item": "item3"}, {"name": "name 2", "items": ""} ] т.е. так чтобы элементы исходного массива items стали строками выборки + к ним добавились остальные поля выборки? суть такая, что мне нужно сделать дальше $group по item, если поле не пустое, а если пустое, то по name (но это уже не сложно через $project + $cond решается)
с $unwind не то не разобрался, не то он не работает как мне нужно, в результате его работы получаю только строки с непустым items
Nick
с $unwind не то не разобрался, не то он не работает как мне нужно, в результате его работы получаю только строки с непустым items
ожидаемо, т.к. он берет запись из массива и к нему добавляет поля из родителя, поэтмоу ничего ничего породить не омжет
Nick
в вашем случае нудо бы добавить стадию где в пустой массив будет доабвляться пустая строка как элемент массива
Nick
и после уже анвинд
Denis
Всем привет. Новичек в монге и прошу помощи. есть коллекция вида {id: ,name: , books:[ {id: ...}{id:...}]} как мне вернуть документы, в которых books>3 например. Подскажите плиз
Dmitriy
а не подскажите, каким оператором можно для этого воспользоваться?
все, разобрался, сделал это так {$project: {"items": {$cond: [{$ne: ["$items", []]}, "$items", [""]]}
Nick
примерно то же хотел написать
Nick
только вроде есть $size
Nick
но плюс минус тоже самое
Dmitriy
https://docs.mongodb.com/manual/reference/operator/aggregation/size/
а чем кстати $size будет работать лучше чем сравнение с пустым массивом? по идее по перформансу должно быть хуже, т.к. должен вычислится размер массива, который мне не нужен
Nick
одинаково плохо) т.к. eq так же прочитает весь массив
Dmitriy
мде, ну тогда хрен редьки не слаще)
Dmitriy
спасибо!
Tsikhan
Всём привет! Подскажите, что можно сделать если окно оплога монги постоянно падает? как вылечить эту проблему?
yopp
Размер окна зависит от размера оплога, среднего размера документа и числа операций.
Tsikhan
спасибо больше!
Alexey
Добрый вечер! Может кто-нибудь подсказать, почему при первом удалении монга ничего не удаляет?
Nick
Или используйте in
Alexey
У вас $and вместо $or
хахах, сори, пора заканчивать работу на сегодня, спасибо большое, я мог бы долго сидеть
Aleksandr
Добрый день. Как обычно организуют связку mongo и elasticsesrch? Es для поиска нужно, в голову приходят 2 пути. Периодическое индексирование es или индексирование при добавлении обьекта в mongadb.
Aleksandr
объемы данных, как быстро изменения должны быть в эластике? данные только добавляются или еще и изменяются
каждый день может добавлятся пару тысяч записей, накатывают поверх старых.
Dmitriy
ребят, а подскажите, где-то в чате видел инфу что в АФ работает с индексами только первый match. не могу найти в оф. доке про это. может мне приснилось или ткните где почитать подробнее про это?
Владимир
Парни, всем привет, подскажите, как будет выглядеть запрос с несколькими inner join + left join.
denis
Товарищи, подскажите советом. Есть большая коллекция (20 миллионов документов), в которой нужно переименовать неиндексированные ключи. Запрос из шелла довольно простой и выглядит так: var bulk = db.coll.initializeUnorderedBulkOp(); bulk.find({"key.old_key": {$exists: true}}).update({$rename: {"key.old_key": "key.new_key"}}); bulk.execute(); Сервак на железке с 30GB RAM, а коллекция занимает 60GB, соответственно из-за этого запроса монга съедает всю память и падает. Как быть?
Artem
разделить коллекцию на 2 части ?
denis
как вариант, но слишком сложно для такого обновления, которое больше не повторится
denis
+ менять application код
denis
может быть можно что-то еще сделать?
denis
буду пробовать, видимо только этот вариант остается
Brommie
Привет, никто не сталкивался с "encountered an illegal file format or internal value", и может знаете как пофиксить? Монга v3.4.21
Anastaysha
я конечно не эксперт,однако здравствуйте))))
Anastaysha
внезапно)
Brommie
внезапно)
ты во всех айти пабликах живешь))?
inqfen
Ответственный же эйчар
inqfen
Значит во всех
yopp
в доке вроде ж есть к тому же в монгу файл лить это такоэ себе кмк))
У нас не принято говорить «в доке написано». Хотите сослаться на документацию — даёте ссылку.
yopp
Весь лог с ошибкой не помешал был
Господин бумага
привет. можно в монге сделать один запрос но что б он покрывал запросы много данных? типа есть такие объекты в базе, в массивах лежать id авторов и т.д можно ли как то получить авторов и остальных в одном запросе? или придется делать много запросов?
Ilya
Добрый день, возник вопрос. У меня в базе, есть записи в которых некоторые поля пустые, что-то вроде "notifications_key" : [], Нахожу я эти записи просто db.getCollection('test_teams').find({"notifications_key" : []}) Но мне надо добавить в notifications_key информацию Т.е. получается надо выбрать все которые с пустым notifications_key и потом в него записать определенные данные Подскажите пожалуйста, как это правильно реализовать
Askhat
Ребят. Подскажите как правильней сделать. Есть массив доков, в каждом доке есть поле (массив объектов) c id элемента и число Нужно с помощью aggregate найти среднее по всем элементам Исходный массив примерно такой [{ _id: ObjectId, items: [{ element: ObjectId, rate: Number }] }] Нужно по element вывести среднее из всех записей, чтобы выглядело примерно так: [{ element: ObjectId, avgRate: Number ]} Или так не получится на стороне монги и это нужно делать на js?
A
Всем Привет! вопрос такой: разворачиваю на сервере монго. для операций пишет “авториизоваться надо ”, но и при создании юзера тоже валится ошибка “Error: couldn't add user: command createUser requires authentication” что делать?
Askhat
$unwind + $group вам поможет
А как группировать вложенные объекты? Я просто пробую например в $group, _id ставить $element и добавляю ещё одно поле avgRate: { $avg: '$rate' } но чёт не так
Askhat
$unwind + $group вам поможет
$unwind вряд-ли он тут поможет. Зачем мне разворачивать те же items например?
A
Как создать юзера?
Nikita
ребят, я чет не могу разобраться, можно в монге агрегацией сделать аналог left inner join ? могу ошибаться в понятиях: делаю выборку из одной коллекции, и нужно в нее добавить данные из другой
Nikita
помогите плиз )
Nan0
Как создать юзера?
попробуй врубить для начала авторизацию в файле /etc/mongod.conf: вместо: security: authorization: "disabled" напиши: security: authorization: "enabled" и попробуй ещё раз добавить юзера, рестартнув mongod
Nan0
тоже самое, а файл мой вот так выглядид
а если без кавычек? и попробовать заменить authorization на security.authorization?
Nan0
тоже самое, а файл мой вот так выглядид
только после редактирования файла, не забудь перезапуститься
Nan0
а вот если через mongod, то такой результат
https://www.mkyong.com/mongodb/mongodb-failed-to-unlink-socket-file-tmpmongodb-27017/ https://stackoverflow.com/a/47860436/8370915 https://stackoverflow.com/a/31781141/8370915
Nan0
ребят, я чет не могу разобраться, можно в монге агрегацией сделать аналог left inner join ? могу ошибаться в понятиях: делаю выборку из одной коллекции, и нужно в нее добавить данные из другой
если я вас правильно понял, то вам нужен $lookup: https://stackoverflow.com/a/33511166/8370915 https://stackoverflow.com/a/46969468/8370915 https://www.mongodb.com/blog/post/joins-and-other-aggregation-enhancements-coming-in-mongodb-3-2-part-1-of-3-introduction