Brunello
я чекдиск запустил говорит полтора часа будет работать подожду
Brunello
а что касается прав на директорию
Ростислав ✚
Здравствуйте. Мне нужно сделать поиск картинок по ключевым словам, я думаю создать коллекцию где в каждом документе будет путь и проиндексированный масив ключевых слов. Так нормально или есть подход по лучше?
Murena
всем привет подскажите с помощью какого оператора можно искать по массиву - но чтоб все елементы присутствовали - когда делаешь так - { $in: findArr } - то здесь любой елемент в массиве может быть - когда делаешь просто указываешь массив findArr - тогда также должна быть строгая последовательность - а как сделать поиск так чтоб елементы с массива обязательно все присутствовали - но без строгой последовательности ?
Murena
спасибо
Murena
подскажите плиз кто шарит в регулярных выражениях для монги - как сделать такую проверку - нужно проверить строку на то что она не начинается и не заканчивается на определенные букви - то есть должно все находится внутри строки только
Murena
как только в начале или только в конце - там просто, я разобрался ) а чтоб не в начале и не в конце ) а внутри - не могу понять.
Sergey
https://regex101.com/r/wD3xfL/1 Так?
Murena
https://regex101.com/r/wD3xfL/1 Так?
да все верно - только вместо f по центру может быть любой символ - я изменил на ^[^a]*[^a]$ вроде работает как надо спасибо получается находит все что не начинается на a и не заканчивается на a
Sergey
да все верно - только вместо f по центру может быть любой символ - я изменил на ^[^a]*[^a]$ вроде работает как надо спасибо получается находит все что не начинается на a и не заканчивается на a
Только любой символ — это не *, а . (просто точка). .* — любой символ любое количество раз подряд (ноль в том числе) .+ — любой символ любое количество раз подряд (один и более) Опиши задачу подробнее, или приведи пример строк, которые нужно найти и строк, которые не нужно искать — станет понятна задача — будет лучше решение.
Murena
Только любой символ — это не *, а . (просто точка). .* — любой символ любое количество раз подряд (ноль в том числе) .+ — любой символ любое количество раз подряд (один и более) Опиши задачу подробнее, или приведи пример строк, которые нужно найти и строк, которые не нужно искать — станет понятна задача — будет лучше решение.
если более точно то это поиск в бд - по словам/по буквам - нужно найти слова в которых присутствуют буквы - но внутри слова - чтоб не начиналось и не заканчивалось на эти буквы вот пример того что в коде $match: { taskName: body.taskName, 'wordsArr.word': { $regex: ^[^${word}].*[^${word}]$, $options: 'ixm' } }
Murena
но все вроде работает как нужно
Daniyar
привет всем.. есть вопрос... я вот не понял $sort не работает чтоли с $cond в aggregate?
Daniyar
или я не правильно делаю? помогите пожалуйста🙏🙏
Nick
привет всем.. есть вопрос... я вот не понял $sort не работает чтоли с $cond в aggregate?
у сортировки нельзя так указывать условия. указывайте порядок в зависимости от услвоия во время формирования пайплайна
Daniyar
...аха... следующий вопрос.. допустим в базе десятки тысяч объектов, нужно ли давать какой-то лимит до сортировки? типа на performance не повлияет?
Daniyar
спасибо заранее
Nick
всегда надо давать ограничения на выборки, а иначе всегда обход всех документов в коллекции
Daniyar
спасибо
Daniyar
у сортировки нельзя так указывать условия. указывайте порядок в зависимости от услвоия во время формирования пайплайна
с помощью addFields имеете в виду? заранее добавить 1, -1 и потом дать типа этого: $sort: { title: "type"}?
Nick
имею ввиду в коде составлять пайп
Andrii
Всем привет. Подскажите как мне добавить новое поле а существующую модкль с помощью миграций. Я использую следующий плагин - https://www.npmjs.com/package/migrate-mongoose . В функции up, делаю следующее - User.updateMany({}, { $addFields: { field: "test" } }, { multi: true }). Миграция прошла успешно. Но ничего не изменилось. Я добавил свое поле в модель User. Но и это ничего не дало... Можете помочь пожалуйста
Andrii
Уже 4 час голову ломаю. И да, создание и другие методы тоже не отрабатывают
Aleks
Привет всем
Aleks
Aleks
подскажите как можно исправить?
Welis
https://www.cyberciti.biz/faq/how-to-install-xfs-and-create-xfs-file-system-on-debianubuntu-linux/
Aleks
если у меня сейчас ext4
Aleks
cоздать раздел с xfs и перемонтировать туда?
Welis
да
Aleks
а почему перестало работать
Welis
не знаю, может вы раньше другой стораж engine юзали
Aleks
виртуалка с одним разделом ext4
Aleks
два года работала и встала
Welis
за два года много чего наверное изменилось
Aleks
не пойму как перенос на другую фс запустит базу
Welis
cоздать раздел с xfs и перемонтировать туда?
лучше подождите другого, более опытного юзера mongo, я много чего не знаю, можете продублировать вопрос
Ilya
using the xfs filesystem
это просто предупреждение, оно не относится к ошибке и показывается у всех монг
Ilya
в самой папке /var/lib/mongo/ данные есть?
Ilya
я спрашиваю потому что у меня данные лежат в /var/lib/mongodb
Aleks
Ilya
а сама монга не конфигурировалась до этого чтобы использовать шифрование?
Aleks
нет
Ilya
ну тогда реально ждать гуру, но перед всеми действиями рекомендую скопировать данные в резервное место
yopp
не пойму как перенос на другую фс запустит базу
Это просто предупреждение. Судя по всему у вас повреждён файл каталогов
yopp
Монга штатно завершилась в последний раз?
Anonymous
Может ли монга сама инкрементировать поле при записи нового документа? Т.е. не клиентом дописывать логику при записи, а в базе. А сама задача - создать человеко-читаемый ключ(уник). (Айдишник не трогаем, работает и работает)
Aleksandr
Айдишник не трогать это правильно
Aleksandr
А остальное надо самому на клиенте
Anonymous
Привет Подскажите, какие есть гуд практис для построения мульти-тенантой архитектуры в монге ? Пасиба
Murena
всем привет - подскажите у меня есть такой код - можно ли как то в aggregation сумировать то что происходит внутри $map вложеного поля куда то выше как в другое поле в корень документа, или какой оператор может такое делать чтоб почитать. $project: { subtitlesWordsArrMap: { $slice: [ { $filter: { input: { $map: { input: '$subtitlesWordsArrMap', as: 'arrSub', in: { word: '$$arrSub.word', items: { $slice: ['$$arrSub.items', 2] }, resultItemsCount: { $size: '$$arrSub.items' } } } }, as: 'subtitlesWordsArrMap', cond: { $regexMatch: { input: '$$subtitlesWordsArrMap.word', regex: ${findExp}, options: 'ixm' } } } }, 5 ] }, _id: 1, }
Daniil
ребят, может кто помочь?)
Используйте $set - https://docs.mongodb.com/manual/reference/operator/update/set/
Daniil
И при использовании updateMany нет необходимости передавать параметр multi
Andrii
пробовал, результат аналогичный, при том что бы я не делал в миграции, будь то создание нового, или удаление, ничего не отрабатывает, хоть и пишет что все ок
Daniil
Попробуйте сделать это самописным простейшим скриптом, не используя этот пакет
Гена
Коллеги, добрый день Столкнулся вот с такой ошибкой Command failed with error 112 (WriteConflict) Гугл ничего внятного не говорит. Можете подсказать может не там ищу
Ilya
это в логах или при выполнении запроса?
Гена
Это упало в лог приложения
Гена
получается при выполнении запроса
Гена
в логах монги всё ок
Ilya
у вас скорее всего там транзакция? такие ошибки бывают когда внутри транзации допустим один и тот же докумет пытались два раза изменить
Гена
да, это транзакция. А где можно подробнее почитать про это? а то что-то я найти не могу
Ilya
прочитать не знаю - просто уже набивал шишку)
Гена
а) ну спасибо)))
Ilya
https://www.percona.com/blog/2018/12/04/mongodb-4-0-using-acid-multi-document-transactions/ тут примерно про это в самом низу
Гена
ага Вижу Conflicts When two (or more) concurrent transactions modify the same documents, we may have a conflict. MongoDB can detect a conflict immediately, even while transactions are not yet committed. The first transaction to acquire the lock on a document will continue, the second one will receive the conflict error message and fail. The failed transaction can then be retried later.
Гена
спасибо))
Daniyar
ребят.. я прочел что sort занимает до 100мб рам по умолчанию... это примерно сколько документов в коллекции должно быть?
Ilya
ну документы разные бывают) у меня есть по 100Кб один документ, в 100Мб таких будет 1000 штук
Anonymous
почему нельзя создавать мульти-кей хешед индексы ?)
Anonymous
типа _id + my_field
Daniyar
ребят.. я прочел что sort занимает до 100мб рам по умолчанию... это примерно сколько документов в коллекции должно быть?
кстати можно создавать кэш на сервере типа заранее отсортировать по нужным критериям и потом исходя от критерий юзера уже отдавать данные с кэша?
Daniyar
просто не знаю как решить проблему сортировки по критериям если десятки а то сотни тысяч данных будут в коллекции