Viktar
А весь массив сразу как пройти одной командой?
не делал, попробуйти опустить индекс. bazzArray.$.baaz или bazzArray.$[].baaz. У меня сейчас нет под рукой монги, что бы протестировать
Andrey
мне надо как то ускорить все в 1000 раз желательно или больше )
Сходите по другому, Посчитайте, 8 мин - 480 секундт, ускоряете в 1000 раз, это 48 мс, у вас миллионы, сколько миллионы - ну 10, посчитайте размер записи, умножайте или разделите, в этот отрезок у вас должна уложиться ваша операция типа merge, и вставка в другую коллекцию - что получится. Не забывайте что монга хранит данные в сжатом виде и тут будет и распаковка и снова упаковка. Может вам проще получать данные в другом виде, если это надо делать переодически. Просто сделаете экспорт этой коллекции средствами монгоэкспорт в файл - и посмотрите сколько времени будет. Это условно будет чтение всей коллекции и просто запись в файл.
Vitalii
доки - это очень важная штука. Важнее доков - только гугл.
Andrey
доки - это очень важная штука. Важнее доков - только гугл.
👍 Для это их сначала читать надо, а потом только делать, но все спешат и сразу делают.
Roman
Подскажите как можно подсчитать количество вложенных объектов в отдельном документе в mongo? Если допустим вложенность глубокая, countdocuments() считает только количество самих документов.
Ilya
хотя нашел $size оператор
Ilya
db.collection.aggregate( { $project: {result: {$size: "$items"}}})
🐆
всем привет, есть какой-то способ при создании нового таска увеличить currentNumber на 1?
Viktar
Добрый день, есть записи в колекции вида { "npa" : "310", "nxx" : "818","carriersNames" : [ "at&t mobility" ],phoneNumbers: 2} { "npa" : "310", "nxx" : "818","carriersNames" : [ "verizon wireless", "at&t mobility" ],phoneNumbers: 7} { "npa" : "310", "nxx" : "818","carriersNames" : [ ],phoneNumbers: 3} мне надо сгрупировать их по npa и nxx что бы получить запись вида { "npa" : "310", "nxx" : "818","carriersNames" : [ "at&t mobility", "verizon wireless" ],phoneNumbers: 12} и возникает проблема с полем carriersNames в агрегация нет для $addToSet такой фишечки как $each а если раскрывать массив через $unwind, то теряется запись с нулевым массивом { "npa" : "310", "nxx" : "818","carriersNames" : [ ],phoneNumbers: 3} Может кто нибудь решал похожую задачку?
Ilya
$setUnion не поможет тут? - не похоже не оно
🐆
всем привет, есть какой-то способ при создании нового таска увеличить currentNumber на 1?
в общем ищу максимальный и увеличиваю на 1, хз насколько верное решение
Ilya
не помогает
вот тут с reduce показано как сделать https://stackoverflow.com/questions/42291965/setunion-to-merge-array-from-multiple-documents-mongodb
Viktar
вот тут с reduce показано как сделать https://stackoverflow.com/questions/42291965/setunion-to-merge-array-from-multiple-documents-mongodb
Благодарю, {$project :{carriersNames: {$reduce: {input: "$carriersNames",initialValue: [], in: { $setUnion: ["$$value", "$$this"] }}}}} помогло
Null
ХАВхавха, ппц, снова ты? Давно не виделись
Mike
Такой вопрос: В монге можно каким то образом вычленить(из скрипта) - общее время работы(чтение запись и пр команды запросов) ?
Mike
(условно скрипт работает 10 минут и что бы можно было понять сколько из этого времени отъедают процессы связанные с базой) а желателньо что бы еще и отдельные процессы сколько работают по времени - можно было сегментировать.
Yuri
Народ кто подскажет как с задачей справится. На фронте есть поля name в базе есть два поля first_name и last_name. Как сделать поиск из одного общего запроса по двум в базе?
Yuri
Если можно без агрегации
Alexander
Если можно без агрегации
$or в помощь. https://www.mongodb.com/docs/manual/reference/operator/query/or/
Yuri
Нет это не поможет. Поиск по «игорь и» не найдет поля игорь и ивонов
Alexander
Нет это не поможет. Поиск по «игорь и» не найдет поля игорь и ивонов
А в обратную сторону нет? Искать "Игорь" в "Игорь и" или "Иванов" в "Игорь и"?
Alexander
Ну и плюс прямой вариант через тот же or.
Alexander
А вообще с полнотекстовым поиском на кириллице в mongo всё плохо. По крайней мере в 5.0.
Mike
Что-то типа того? https://www.elastic.co/observability/application-performance-monitoring
возможно - но только бесплатный вариант )
Alexander
возможно - но только бесплатный вариант )
Агент для .NET свободно через NuGet распространяется. Для других платформ, думаю, тоже. Что касается ELK, контейнеры Docker тоже скачиваются свободно. Не припомню, чтобы где-то ключ спрашивал. Но точно не скажу, давненько поднимал.
Alexander
а для ноды название какое конкретно загуглить? код ноды тоже можно профайлить этим модулем?
Например, вот https://www.elastic.co/guide/en/apm/agent/nodejs/current/index.html На .NET у него есть MongoDbDiagnosticsSubscriber, а вот что он умеет на node.js из коробки - не скажу. Но это по сути просто сбор метрик с бэка и визуализация в Kibana.
Mike
https://ru.stackoverflow.com/questions/1449529/%d0%92%d0%be%d0%b7%d0%bc%d0%be%d0%b6%d0%bd%d0%be-%d0%bb%d0%b8-%d1%83%d1%81%d0%ba%d0%be%d1%80%d0%b8%d1%82%d1%8c-%d0%bf%d0%be%d0%bb%d1%83%d1%87%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85-%d0%b8%d0%b7-%d0%b1%d0%b0%d0%b7%d1%8b-%d0%b2-10-%d0%b8-%d0%b1%d0%be%d0%bb%d0%b5%d0%b5-%d1%80%d0%b0%d0%b7 Может кто то знает ответ на данный вопрос.. ? )
Mike
индекс на date
какой прирост это может дать?
Mike
(в скорости)
ולאד
я ошибся, какая итоговая задача с этими архивными данными?
Mike
я ошибся, какая итоговая задача с этими архивными данными?
дальше работать скриптом с этими данными - задачь подобных очень много - но важна именно скорость вытаскивания данных из базы в подобном ключе
Vladyslav
Это как? В базе два поля раздельных
Храни в бд значит name тогда и не разбивай. Еще вариант ищи через or, а если есть пробел то спалить и ищи по 1 полю и тд
Iskander
Доброй ночи, товарищи! У нас в проекте в качестве blob storage (images, thumbnails, office documents, videos), от 1 МБ до 2 ГБ по размерам использовали AWS s3. К сожалению, партия сверху прислала директиву - отказаться от облаков и перейти на собственные сервера. Подскажите, для заявленных выше хотелок - файлопомойка до 2 гб. размер файла, больше на чтение, реже на запись mongo grid fs подойдёт или слишком большие объемы одного файла для этого инструмента?
yopp
По сути переезд будет ближе к «настроили права в минио» и «поменяли домен» К монге по-моему есть s3 совместимые хранилища, но даже в этом случае вам достаточно быстро потребуется шардирование, а это дорого содержать. MinIO по сути позволяет просто дисков накидать и с некоторой борьбой, настроить для них реплики и шарды
Andrey
Да, придется немного посидеть с minio, экспертизы нет. С mongo gridfs в этом плане легче все выглядит, да и монга уже развернута и используется для других вещей, подключить grid fs выглядит более простой задачей
Если minio покажется «сложным» попробуйте SeaweedFS, на хабре хвалили, у себя только в dev условиях использую, нареканий нет. Разворачивается 1 docker-compose файл с о своими изменениями и всё. https://github.com/seaweedfs/seaweedfs
mewton
Привет, подскажите, пожалуйста, в чём может быть причина. Делаю запрос: let filter = { 'updated': { '$exists': false } } collection.find(filter) Получаю список документов, среди которых есть документ, который не подходит под фильтр. Я даже его удалил из коллекции а он всё равно выводится в консоли. 🤪 Может данные как-то кешируются или типа того?
mewton
mewton
Валерий
подскажите как получить типы bson в nodejs из объекта
mewton
Exist без кавычек
Это не имеет значения
mewton
Вопрос про другое
Vladyslav
Это не имеет значения
Твой фильтр из-за этого и не работает
Vladyslav
С фильтром всё ок
тогда в чем вопрос?
mewton
тогда в чем вопрос?
В возвращаемом списке документов. В списке есть документ, который уже даже удалён из коллекции. Вероятнее всего это какой-то кеш запросов, но я пока не разобрался как его удалить.
mewton
А ключи можно писать хоть в кавычках хоть без
Vladyslav
~3.4k
скрины предоставишь действий? но обычно, если ты удалешь по определенному фильтру, то оно не мгновенно удаляет все с бд, а читает и удаляет. А если ты запустил удаление по фильтру, а потом сразу же поиск по этому фильтру, то получишь результаты, так как они еще не удалены
Vladyslav
чтобы увидеть как удаление работает: запускаешь удаление делаешь find + count и запускаешь вручную (каждую секунду) и наблюдаешь что count уменьшается
mewton
скрины предоставишь действий? но обычно, если ты удалешь по определенному фильтру, то оно не мгновенно удаляет все с бд, а читает и удаляет. А если ты запустил удаление по фильтру, а потом сразу же поиск по этому фильтру, то получишь результаты, так как они еще не удалены
Спасибо, только что разобрался. Из-за невнимательности. В коллекцию попал дубль документа с айдишником-строкой. Соответственно в поиске по тому фильтру он был, а когда я его искал по айдишнику-числу то его не было.
mewton
Всё работает как надо, это я накосячил
𝚂𝚑𝚞𝚔𝚑𝚊
Привет, возможно ли в mongoose вставить в поле sort $and?
𝚂𝚑𝚞𝚔𝚑𝚊
Т.е. sort: $and: [{...}, "..."]?
𝚂𝚑𝚞𝚔𝚑𝚊
jq
𝚂𝚑𝚞𝚔𝚑𝚊
ой
𝚂𝚑𝚞𝚔𝚑𝚊
или можно просто sort: [{...}, "..."]?
𝚂𝚑𝚞𝚔𝚑𝚊
ну то что один параметр строкой
𝚂𝚑𝚞𝚔𝚑𝚊
а второй обьектом
Jasur Sharofiddinov
guys i couldnt delete the collection from database, because of there are two the same collections in database? i tried to rename one and delete, but i couldn't, is there any way to delete?
Albert
This chat is for Russian-speaking people
Jasur Sharofiddinov
This chat is for Russian-speaking people
In russian ребята, я не мог удалить коллекцию из базы данных, потому что в базе данных две одинаковые коллекции? я пытался переименовать один и удалить, но я не мог, есть ли способ удалить?
lmn
check if there is a trailing space in collection name
Andrey K.
всем привет, что-то элементарное упускаю при создании шардированного кластера. Есть репликасет из 3 машин. Включена авторизация по паролю. Решил сделать шардирование. Создал конфиг-сервер. Создал монгос. Создал сервер для 2-го шарда (2-й шард будет на репликасете из единственного хоста пока) Итого 6 хостов суммарно. На монгосе, конфиге и 2-м шарде указал кейфайл, идетничный хостам из шарда 1 (там 3 тачки, репликасет). Пытаюсь добавить шарды на монгосе, он мне пишет not authorized on config to execute command Я так понимаю, он коннектится к конфиг-серверу успешно, но чего ему еще надо, ведь на конфиге я пароль не включал. Подскажите, плиз
Andrey K.
а, перед sh.addShard("testRS/my-host-1:27017") я делаю use admin
Nikita
Помогите плз с этим: https://stackoverflow.com/questions/73777361/how-to-run-mongo-db-docker-image-with-specified-authsource
Nikita
Как запустить mongo в docker с указанием конкретной Authentication database (authSource)?