Joseph
Бред в общем 😂
Dmitry
Коллеги, подскажите паттерн как красиво организовать удаление полей из модели возвращаемой на клиент? уже страшно ствавить сейчас пока что select: false а в запросе + или в запросе -. Самое безопасное покачто почистить перед отправкой уже
Nick
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
Dmitriy
Nick
в вашем случае нудо бы добавить стадию где в пустой массив будет доабвляться пустая строка как элемент массива
Nick
и после уже анвинд
Denis
Всем привет. Новичек в монге и прошу помощи. есть коллекция вида {id: ,name: , books:[ {id: ...}{id:...}]} как мне вернуть документы, в которых books>3 например. Подскажите плиз
Dmitriy
Nick
примерно то же хотел написать
Nick
только вроде есть $size
Nick
Nick
но плюс минус тоже самое
Nick
одинаково плохо) т.к. eq так же прочитает весь массив
Dmitriy
мде, ну тогда хрен редьки не слаще)
Dmitriy
спасибо!
Tsikhan
Всём привет!
Подскажите, что можно сделать если окно оплога монги постоянно падает? как вылечить эту проблему?
yopp
yopp
Размер окна зависит от размера оплога, среднего размера документа и числа операций.
Tsikhan
спасибо больше!
Alexey
Добрый вечер!
Может кто-нибудь подсказать, почему при первом удалении монга ничего не удаляет?
Nick
Nick
Или используйте in
Alexey
У вас $and вместо $or
хахах, сори, пора заканчивать работу на сегодня, спасибо большое, я мог бы долго сидеть
Aleksandr
Добрый день. Как обычно организуют связку mongo и elasticsesrch? Es для поиска нужно, в голову приходят 2 пути. Периодическое индексирование es или индексирование при добавлении обьекта в mongadb.
Nick
Aleksandr
Dmitriy
ребят, а подскажите, где-то в чате видел инфу что в АФ работает с индексами только первый match. не могу найти в оф. доке про это. может мне приснилось или ткните где почитать подробнее про это?
Владимир
Парни, всем привет, подскажите, как будет выглядеть запрос с несколькими inner join + left join.
yopp
Dmitriy
Nick
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
может быть можно что-то еще сделать?
yopp
denis
буду пробовать, видимо только этот вариант остается
Brommie
Привет, никто не сталкивался с "encountered an illegal file format or internal value", и может знаете как пофиксить? Монга v3.4.21
Anastaysha
Anastaysha
я конечно не эксперт,однако здравствуйте))))
Brommie
Anastaysha
внезапно)
Brommie
внезапно)
ты во всех айти пабликах живешь))?
Anastaysha
inqfen
Ответственный же эйчар
inqfen
Значит во всех
yopp
yopp
Весь лог с ошибкой не помешал был
Господин бумага
привет. можно в монге сделать один запрос но что б он покрывал запросы много данных?
типа есть такие объекты в базе, в массивах лежать id авторов и т.д
можно ли как то получить авторов и остальных в одном запросе? или придется делать много запросов?
Pafa
Nick
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”
что делать?
Dmitriy
Askhat
$unwind + $group вам поможет
А как группировать вложенные объекты? Я просто пробую например в $group, _id ставить $element и добавляю ещё одно поле avgRate: { $avg: '$rate' } но чёт не так
A
Nikita
ребят, я чет не могу разобраться, можно в монге агрегацией сделать аналог left inner join ?
могу ошибаться в понятиях: делаю выборку из одной коллекции, и нужно в нее добавить данные из другой
Nikita
помогите плиз )
Askhat
Nan0
попробуй врубить для начала авторизацию в файле /etc/mongod.conf:
вместо:
security:
authorization: "disabled"
напиши:
security:
authorization: "enabled"
и попробуй ещё раз добавить юзера, рестартнув mongod
A
A
A
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
Nikita