Nick
подскажите как сделать $inc чтобы был декремент и если значение в результате негативное то сделать его 0, например было 10, сделали инк -15, результат вышел -5 и как его сразу на 0 засетить?
тут походу update with aggregation где в пайплайне проверяется условие через $cond, что если значение в доке меньше дельты. то просто 0, а иначе изменение через $subtract
Игорь
Парни, монга 5.5 в стейтфулсете падает вот с такой ошибкой "Fatal assertion","attr":{"msgid":50944,"file":"src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp","line":682}}" при этом ранее в логе есть также "Detected unclean shutdown - Lock file is not empty","attr":{"lockFile":"/bitnami/mongodb/data/db/mongod.lock"}}". Кто то сталкивался с подобным? Пришел утром на работу и тут такое ))
Игорь
Диски нас подвели. Что смог восстановить через repair, что то нет
Andrey
Диски нас подвели. Что смог восстановить через repair, что то нет
mongod —repair? А что в итоге процесса восстановления?
Andrey
Вчера просто эксперементировал, на тестах, но не стал дожидаться окончания процесса
Andrey
Не понял вопроса?
имею ввиду, запускали с аргументом —repair, и после что, база поднимается?
Игорь
имею ввиду, запускали с аргументом —repair, и после что, база поднимается?
Чарт битами, делал запуск с repair, потом запуск без repair
Andrey
Чарт битами, делал запуск с repair, потом запуск без repair
А как оценили, что восстановилось, что нет?
Nikita
работал кто с х509 сертификатами? можно при создать пользователя в mongo без привязки к CN сертификата. аналог mysql пользователся CREATE USER 'jeffrey'@'localhost' REQUIRE X509;
Илья
Привет, а тут ссылки можно постить?
Илья
На mongoplayground в частности
Илья
В общем, я никак не могу понять где ошибся, почему в итоговом ответе нет документа с непустым games: https://mongoplayground.net/p/VKnJY8w_6nu
Илья
Ошибка явно где-то внутри $filter, но я уже час не могу найти
Nick
Ошибка явно где-то внутри $filter, но я уже час не могу найти
у вас после лукапа join содержит массив и games поулчается на втором уровне вложенности. Вам сначала надо вытащит ьпервый эллемент из массива join и следующим действием уже ваш фильтр над таким элементом
Mike
переписал вопрос - может кому то будет так удобнее ответить: https://ru.stackoverflow.com/questions/1444932/%d0%9a%d0%b0%d0%ba-%d0%be%d0%bf%d1%80%d0%b5%d0%b4%d0%b5%d0%bb%d0%b8%d1%82%d1%8c-%d0%bd%d0%b0%d0%bb%d0%b8%d1%87%d0%b8%d0%b5-%d0%ba%d0%be%d0%bb%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d0%b8-%d0%b2-%d0%b1%d0%b0%d0%b7%d0%b5
Mike
там где лист коллекшнс toArray должен применяться к результату авайта, а не к промису как сейчас
http://joxi.ru/a2XlbBZCQXxeq2 вроде причина была в том что я не указал имя базы
Александр
Добрый день. Подскажите пожалуйста, как правильно написать пайплайн для миграции по добавлению нового поля, расчленив перед этим через "unwind"? Ошибка: Could not migrate down 20220901134630-add-field.js: Unknown modifier: $unwind. Expected a valid update modifier or pipeline-style update specified as an array Error: Could not migrate down 20220901134630-add-field.js: Unknown modifier: $unwind. Expected a valid update modifier or pipeline-style update sp ecified as an array
Александр
yopp
Мне нужно добавить новое поле, перед этим Unwind сделать. Как это в миграцию вставить?
Вы хотите добавить новое поле в существующих массив или хотите разбить один документ на несколько?
Александр
Вы хотите добавить новое поле в существующих массив или хотите разбить один документ на несколько?
разбить массив projeсtSessions и в каждый новый документ добавить новое поле "commonSessionTime"
yopp
В этом случае вам нужен https://docs.db-ai.co/docs/manual/reference/operator/aggregation/merge/
yopp
Т.е вместо update сделайте aggregate и последним шагом $merge с нужными вам настройками
access_denied
Добрый день, подскажите пожалуйста, локальную базу данных нужно как-то запаролить для защиты данных? Если да то как? Я чет не пойму
Илья
Добрый день, есть ли у кого-то healthcheck для монги в docker-compose?
Murad
Как можно правильнее построить запрос для пагинации если нужно ещё получать общее количество документов? В голову пока лезет делать 2 запроса
Andrey
Ребята, привет) подскажите новичку плиз. Вот вставляю записи. И расчитываю. что обновление count+1 будет в записи, где position == 9. Но обновляется в записи с минимальным _id. То есть, видимо я как то неверно sort использую?
Red
хотя я как то не видел чтоб по сорту обновляли последний элемент, скорее всего имеет смысл быть)
Andrey
в условии нету у тебя ничего про 9
так сортировка по этому полю есть) по доке как мне показалось, так можно использовать
Null
Привет всем Подскажите, пожалуйста, при подключении к базе с помощью @nestjs/mongoose возникает ошибка "Unable to connect to the database". Что может быть не так с этим урлом? mongodb://127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019/test?retryWrites=true&w=majority&readPreference=primary Изначально в env.example было вот так: mongodb://mongodb1,mongodb2,mongodb3/99math?retryWrites=true&w=majority&readPreference=primary Исправил на реальные адреса, так как завожу апку не через докер. Также пробовал вот так: mongodb://127.0.0.1:27017/test?retryWrites=true&w=majority&readPreference=primary Подключение по урлу, что выше, проверял, работает
Murad
Как кстати в монго делаете смену схемы уже в рабочем проекте? Мне понятно как это делать в sql, но какие подходы и инструменты для этого имеются в монго?
Vladyslav
А как это делают в sql?
Миграции называется
Artem
в монге можно изменить вложенный в массив элемент с upsert, т.е. создать его, если такого нет? пробую array.filed + $set + upsert, ругается
Ant
всем привет Кто-то может подсказать, куда смотреть? Есть коллекция документов, в каждом документе есть большой массив со ссылками ввиде "ObjectID", size около 200. Пытаюсь вытащить этот массив вмесе с командой populate, мне возвращается массив size 33 user = await User.find({user_id: id}, {_hp: true}) .populate({path: '_hp', model: Game, options: {sort: {'create': -1}}}) Если просто пытаюсь достать массив, то отдает массив size = 40 Как можно полуучить полный массив, желательно с populate ?
Ant
где-то есть ограничение size на эту команду?
𝚂𝚑𝚞𝚔𝚑𝚊
Ребят, есть модель с полем категорий отсылающий на другую модель, как реализовать поиск по категориям? Можно как-то отфильтровать поиск после populate?
𝚂𝚑𝚞𝚔𝚑𝚊
В модели категорий только поле title
𝚂𝚑𝚞𝚔𝚑𝚊
можно ли как-то реализовать product.find({$or [{'category.title': ...}]}).populate('category')
Харамбус
можно ли как-то реализовать product.find({$or [{'category.title': ...}]}).populate('category')
В популейт можно передать массив по типу [{path:’category’, select:”_id name …”}]
Антон
подскажите пожалуйста, а как затестить команду find в онлайн редакторах? везде в примерах статей пишут к примеру db.users.find({name: "Tom", age: 32}) а если у меня нет БД, а просто кусок данных который надо проверить, как тогда написать?
Антон
к примеру если тут попытаться найти, то пишет ошибку, как правильно сформировать команду?
Антон
тут же не db.users
Антон
db.users.find({"key": "value"})
Антон
и так не работает $.find({"key": "value"})
A. S.
Здравствуйте. Есть такая проблема.. Есть категория товаров, где уже имеются товары. Мне надо реализовать возможность добавления произвольное количество дополнительных полей(к примеру, название поля и описание) к товарам конкретной категории. То есть дополнительные поля должны появиться и у существующих товаров и у последующих новых. Как такое в монго реализуется? Может есть у кого подобные кейсы?
Антон
db.collection.find
не, так же ошибка
Vladyslav
не, так же ошибка
https://mongoplayground.net/
Vladyslav
другой вариант - если ненужно апдейтить существующие записи: обновляешь свою модель в коде, дальше несуществующие свойстсва просто будут нулами. А дальше любой апдейт данных и все
A. S.
для существующих пишешь скрипт и выполняешь. Для новых пишешь код. Подход ничем не отличается от работы с sql
На самом деле с существующими я разобрался, у меня в моделе товаров есть массив с обьектами и ссылка на айди категории.. Я просто пушу обьекты в массив товаров у которых айди категории одинаковый.. А вот как сделать чтобы у новых товаров этой же категории был такой же массив с обьектами не разобрался..
A. S.
для существующих пишешь скрипт и выполняешь. Для новых пишешь код. Подход ничем не отличается от работы с sql
Ну, если честно я человек который начал свое путешествие с монго, в бд не сильно шарю)
A. S.
вытянуть их с бд
Есть метод какой который сравнивает товары по айди категории и копирует отдельные поля?
Антон
https://mongoplayground.net/
а если квадратных скобок нет, то как искать? ошибку пишет db={ "root1":{ { "key": "value" } } } db.root1.find({"key": "value"})
Vladyslav
слева твоя бд, а не жс код или переменные
Антон
тебе же пишет что левая часть не валидная
ну вот я поменял, проверил - валидная, о пишет все равно оишбку такую же db={ "root1":{ "root2":{ "key": "value" } } } db.root1.root2.find({"key": "value"})
Антон
Антон
вот на сайте проверил
Vladyslav
Антон
Антон
но ошибка уже другая
Антон
ведь в команде указано db, а теперь непонятно что писать
Vladyslav
так же
че ж так сложно открыть дефолтную страницу и сравнить со своим примеров и спокойно найти, что все длжно быть в массиве
Vladyslav
у меня не в массиве
в бд все "массив", держу в курсе