C
пошел курить этот вариант
Роман
hex_md это какая-то пользовательская функция?
Dmitry
Vladyslav
Подскажите, могу ли с помощью $set сделать такую логику или нужно что-то другое. const ids = [1,2,3]; db.getCollection().updateMany( {}, { $set: { "Reseller.Inc" : ids.includes("$Reseller.Id") } } ) Логика: если Reseller.Id есть в массиве, то припиши Reseller.Inc true
Маша
Ребят, всем привет, может тупой вопрос, но какой есть Допустим есть некоторый блог-сайт Там есть посты и комменты Как составить запрос, который выводит данные по посту и только 3 комментария к нему?
Nikita
Блог-сайт реквест 3 пост
Маша
Надо как limit(3) только у конкретного поля пост.комментс я так понимаю Не нашла как это прописывается в запросе 🥺
Dmitry
Надо как limit(3) только у конкретного поля пост.комментс я так понимаю Не нашла как это прописывается в запросе 🥺
Покажите какая структура данных т.к. тут зависит от того, как у вас хранятся данные. Например, если у вас post сразу хранит комментарии, то $project со $slice, а если оно в другой коллекции и вы за один запрос например через $lookup вытаскиваете, то там есть pipeline и в него можно limit прокинуть, ну и дальше по аналоге.
Маша
Это для уника я просто запросы пишу не имея даже бд 😂 Ну выглядит в формате { Нейм: туда-сюда, Автор: тыры-пыры, Комменты: [{ Юзер: ник, Текст: текст }] }
Маша
Поняла, спасибо большое)
Maxim
Коллеги, добрый день! подскажите плз, я сделал следующую группировку "$group": { "_id": { "date": "$date", "category": "$category", }, "count": { "$sum": 1, }, }, и у меня есть минимальная и максимальная даты в этом списке (они все затранкейчены до дней с помощью "$dateTrunc": {"date": "$date", "unit": "day"}, что я хочу: я хочу, чтобы между минимальной и максимальной датой не было пробелов в виде дат (например есть 23.01 и 25.01, но нет 24.01) и чтобы поле count для них было равно 0, какой агрегационной функцией могу для этого воспользоваться?
Maxim
типо есть startDate, endDate - но все что между ними не нужно?
наоборот, если между ними какой-то даты не достает, хотелось бы чтобы она была и count для нее был 0
Nick
на 6 версии
Maxim
https://www.mongodb.com/docs/manual/reference/operator/aggregation/densify/
спасибо огромное =) это то, что нужно
ㅤ
update document если значения не поменялись, то оно перезаписывает или документ останется не тронутым ? То есть date on update будет меняться даже если ничего не поменялось ?
ㅤ
какой date?
$currentDate date_modified : true стоит во время update_one
Vladyslav
$currentDate date_modified : true стоит во время update_one
это ваше свойстов, оно никак не связно с оператором update. update всегда надпишет то, что было в бд
ㅤ
это ваше свойстов, оно никак не связно с оператором update. update всегда надпишет то, что было в бд
Ок, следующий вопрос, во время update_one, upsert=true. Можно ли значения определенного поля поменять, если: 1 - Документ существует в бд 2 - Есть изменения в значениях, которые передаются в $set ?
Маша
Базар вокзал Спасибо
Dmitry
немного неясно что нужно. Мб вам нужно посмотреть update и replace?
Он хочет, чтобы если ни одно поле не изменило своё значение, то поле date_modified, тоже не поменяло значение
ㅤ
немного неясно что нужно. Мб вам нужно посмотреть update и replace?
Нет, вопрос немного в другом. Попытаюсь еще раз вам объяснить. Допустим есть документ {_id: 1, А: 1, B: 1, bool: false} Во время update_one, я делаю выборку по _id. И передаю новые значения для А и B соответственно, мне нужно если значения A и B на самом деле изменились, а не остались прежними то поменять bool: true Можно ли все это одним запросом реализовать ?
Nick
Нет, вопрос немного в другом. Попытаюсь еще раз вам объяснить. Допустим есть документ {_id: 1, А: 1, B: 1, bool: false} Во время update_one, я делаю выборку по _id. И передаю новые значения для А и B соответственно, мне нужно если значения A и B на самом деле изменились, а не остались прежними то поменять bool: true Можно ли все это одним запросом реализовать ?
можно попробовать в агрегации это сделать, но нужно будет перечислять все поля и укладывать логику проверки факта изменения каждого поля. Можно уменьшить все это до расчета хеша от значения полей до и после, но это надо опять же в агрегацию както упихать
ㅤ
Спасибо больше 🙏 @Waldes7 @yatoba
ㅤ
а как так получается что апдейт есть а факт изменения фиксировать не нужно? что за бизнес процесс такой, что информация игнорится
Там просто прилетают данные и неизвестно на самом деле ли они изменились:( не сказал бы скрапинг данных, но что то в этом духе
ㅤ
так а прикол в чем не фиксировать что прилетал апдейт?
Не фиксировать имеете ввиду сравнить данные для начала ? А после уже в update ? 2 запроса, сейчас так и есть
ㅤ
я про то что сломается если вы будете обновлять время апдейта
Время апдейта фиксируется $currentDate меняет его каждый раз после апдейта
Viktar
Добрый вечер господа, подскажите сортировка массивов в монге с 6-й версии пошла?
Viktar
что подразумевается под сортировкой массивов?
что то вроде такого https://www.mongodb.com/docs/manual/reference/operator/aggregation/sortArray/
Viktar
там написано New in version 5.2. так что в 6 есть
может что то похожее в 5-й версии было. у меня задача выбрать топ 10 из массива.
Nick
ну или тупо на стороне софта
Viktar
у меня это надо в середине агрегации сделать. попробую накатить 6-ю версию
Aleksey
А подскажите как мне прикрутить авторизацию к базе? Я вот только создал инстанс, получается чисто по айпишнику подключиться, создал пользователя через: use admin db.createUser({user: "admin", pwd: “password”, roles: [{ role: "root", db: "admin" }], passwordDigestor:"server”}) Но когда пробую так: mongodb://admin:password@ip_here То падает ошибка - Authentication failed. Притом, что вот так всё работает: mongodb://@ip_here Что забыл сделать для того, подключение через ввод пароля отрабатывало и чтобы приходилось авторизовываться внутри инстанса, чтобы, например, сделать rs.status()?
Aleksey
Ребят?)
Aleksey
Очень срочно, прод поднимать надо))0)
Damir
Ответил в лс
Alena
Привет. Подскажите GUI клиент для MongoDB, чтобы можно было восстановить базу (аналог cli mongorestore). Благодарю!
lmn
подскажите самолет чтобы прокатиться по метро. почитайте что такое cli
Alena
*аналог cli mongorestore Извините неправильно выразилась
lmn
https://www.mongodb.com/docs/atlas/backup/cloud-backup/restore/
Ivan
Привет. Подскажите mongosh при каждом запуске генерирует session log .mongodb/mongosh/63d24b3e999badde91d762e0_log Можно ли как-то отключить это логирование? В доках не нашел опций, которые за это отвечают
yopp
подскажите самолет чтобы прокатиться по метро. почитайте что такое cli
У нас профессиональное сообщество, пожалуйста уважайте других участников и воздержитесь от подобных комментариев.
Aleksey
Всем привет! Нужно сделать вьюху(db.createView) в которой нужно оставить поля Name, Folder, Value из исходной таблицы. Подскажите пожалуйста, как построить pipeline для этих полей?
Aleksey
https://www.mongodb.com/docs/manual/core/views/specify-collation/
Читал. Не понимаю как построить фильтр для pipeline
Dmitry
Dmitry
Тут же ясный пример
Aleksey
А в таком случае разве не будет выведена только первая запись?
Dmitry
А в таком случае разве не будет выведена только первая запись?
1. Название View 2. Коллекция 3. Pipliene 4. Не обязательный параметр и можно от него избавиться
Dmitry
А в таком случае разве не будет выведена только первая запись?
:1 в $project указывает, что всё поля скрыть, а это оставить
Dmitry
Лучше первые три передайте и на этом всё
Aleksey
Лучше первые три передайте и на этом всё
Спасибо большое, работает! =D
Alexander
Коллеги, такой вопрос. В пайплайне мне нужно взять по id несколько полей из дургйо коллекции. Сейчас делаю loockup, следующая стадия - беру первый элемент . следующая стадия - addfields, чтобы взять нужные поля. В конце еще удаляю временный элемент. Вопрос. Можно ли это как-то сократить?
Pavel
Коллеги! Как увеличить скорость вставки и обновления? у меня абсолютно ненагруженный сервер, вставка 30к элементов происходит около 6 минут, по мне так это очень и очень долго, индексов нет, обновление по праймари _id
Pavel
сервер вообще пустует в момент обновления
Yury
Подскажите, пожалуйста, можно ли в монгусовский find прокинуть Typescript generic, чтобы когда я указывал несуществующее в данной модели поле (например, shit), IDE мне ругалась?
Yury
Так-то оно мне сейчас подсказывает корректные поля, но на несуществующие не ругается
Viktar
Использовал https://github.com/gabrielelana/mongodb-shell-extensions#Command-ListCollectionsс 4 и 5-й аерсией монго сервера, но как перешёл на 6-ю, дополнение перестало работать. > c archived 1/32KB roster 1/16KB scheduled 0/32KB system.indexes 3/4KB ичень не схатает вот такой фичи в стандартном шеле. Может знаете как починить для 6 версии?