David
можно ещё использовать find update с upsert наверное
можешь подробнее расписать, если не сложно?
Артем
https://www.mongodb.com/docs/manual/reference/method/db.collection.findOneAndUpdate/
Anonymous
два файнда для чего?
Чтобы один отсортировал всю базу в обратном порядке, а второй непосредственно нашёл то, что нужно
Nick
Чтобы один отсортировал всю базу в обратном порядке, а второй непосредственно нашёл то, что нужно
сортировка это часть выборки, она никак данные в базе не перестраивает
Anonymous
Ну и в итоге: как мне решить задачу?
Nick
Пока что на уме только: .find({}).sort({_id: -1}).find({_id: {$lte: ...}}).limit(100)
вот тоже самое только в агрегации sort match limit
David
https://www.mongodb.com/docs/manual/reference/method/db.collection.findOneAndUpdate/
ещё вопрос .find может возвращать значение или bool значение(нашёл не нашёл)? Не нашёл на сайте. В моём случае он возвращает "курсор" (<pymongo.cursor.Cursor object at 0x0000017FBE57A510>)
Артем
хз
Артем
посмотри документацию по драйверу
Alexandr
Привет всем Кто то сталкивался , с поведением на серверах mongo с репликой Что утилиты df выдают большее значение занимаемого места на сервере чем du куда можно копать
Vladimir
У документа есть есть субдокумент, точнее это массив субдокуметов без _id, там по факту набор парметров { key, value }. Так вот как сделать что-то типа assign, когда приходит массив каких-то данных для обновления, причем там могут быть данные которые совадают, данные которых нет массиве субдокументов, ну и данные где изменилось value. Хочется как-то это сделать штатными средсвами но $set не пойдет так он просто заменит массив, а нужно что-то типа assign
Aleksey
Всем большой привет! Пишу пайплайн для тестов и сейчас хочу развернуть mongoDB в GitHub actions с data/, чтобы сделать потом mongorestore. Для локальных тестов собираю кастомный образ, куда ложу нужную папку для рестора. Как можно развернуть mongo в github actions и дать команду, чтобы она заресторила данные?
mArSeN
await this.historyModel.updateMany( { _id: { $in: bonuses[0]?.historyLogIds } }, { $set: { status: 'rejected', updatedAt: new Date(), description: '$referralName', }, }, ); просто хочу, чтобы $referralName из бд взял
mArSeN
а он просто вставляет туда как строку "$referralName"
mArSeN
вот так
Alexander
await this.historyModel.updateMany( { _id: { $in: bonuses[0]?.historyLogIds } }, { $set: { status: 'rejected', updatedAt: new Date(), description: '$referralName', }, }, ); просто хочу, чтобы $referralName из бд взял
Это нужно aggregation pipeline использовать для обновления с использованием значений других полей https://www.mongodb.com/docs/manual/reference/operator/aggregation/addFields/
mArSeN
так прикол в том, что тут он работает нормально. await historyModel.updateMany({}, [ { $set: { createdAt: { $ifNull: ['$date', '$createdAt'] }, updatedAt: { $ifNull: ['$updatedAt', '$date'] }, }, }, { $project: { date: 0, }, }, ]);
Alexander
Тут это где?
mArSeN
Тут это где?
код снизу этого предложения
mArSeN
трэш
Alexander
А внутри ifNull, да он умеет ссылаться
mArSeN
понял видимо в чем дело, забыл добавить квадратные скобки
mArSeN
вчера на работе 4-5 часов убил, на такую простую задачу.
mArSeN
А внутри ifNull, да он умеет ссылаться
не, с ifnull он бы просто пытался добавить такой объект в это поле.
dekabr
привет использую .NET клиент столкнулся с такой ошибкой очень удивился потому что такого значения быть не должно проверил в базе вижу нечто очень странное как оно может быть 'Start' но при этом выдаваться по запросу который ищет 'StartNode'?
dekabr
Casino Elites
☝️
TTY
а есть что толковое на примете?
Если актуальный вопрос. Оч неплохое введение в концепцию https://www.mongodbtutorial.org/
TTY
Я на юдеми курсец взял
материал в формате видео?
Vitya
Да
Vitya
Видяшки, пока только первый вступительный раздел глянул, работы подвалило, но до средины июня надо разобратся 100%
Eugene1111
привет сори за лень, если можете ответьте на 2 вопроса) можно ли на монго заливать картинки (дял профилей пользователей типа) и что будет когда место кончится на бесплатном тарифе, я смогу перейти на платный без потери уже существующей бд? спасибо
Nick
привет сори за лень, если можете ответьте на 2 вопроса) можно ли на монго заливать картинки (дял профилей пользователей типа) и что будет когда место кончится на бесплатном тарифе, я смогу перейти на платный без потери уже существующей бд? спасибо
1. да, можно ранить картинки, если они больше 16Мб планируются, то с использованием GridFS. Но как правило хранят отдельно не в БД при наличии возможностей. 2. да, там кластер из трех нод, что позволяет это провернуть без остановки
Вячеслав
Всем привет, подскажите пожалуйста, есть ли какой-нибудь аналог Rockmongo с встроенной авторизацией (либо возможностью прикрутить лдап)
Damir
mongodb enterprise ldap поддерживает
Интегрировал с openldap
Вячеслав
mongodb enterprise ldap поддерживает
Как раз интересует opensource посредник (MongoDB administration tool) между сервером и юзером
Вячеслав
NoSQLBooster. Лучшего гуя для администрирования нет.
Сходу спрошу, там есть авторизация на стороне прилаги?
Вячеслав
Отлично
Вячеслав
Пошел раскуривать маны, благодарю неравнодушных!
Андрей
Так базовая авторизация в любом клиенте поддерживается
Андрей
ldap там в коммерческой лицухе по-моему от 200$. Пока триал период, все функции доступны.
Alexandrr
это все конечно хорошо, только недавно я начал ознакамливаться с лицензией монги, и, там много интересного, например, что вы должны платить деньги за использование в проде и многое другое
yopp
это все конечно хорошо, только недавно я начал ознакамливаться с лицензией монги, и, там много интересного, например, что вы должны платить деньги за использование в проде и многое другое
Community Edition бесплатна вне зависимости от использования. Единственное что ограничивает лицензия — предоставление монги как сервиса, для этого нужна отдельная лицензия. Enterprise версия да, коммерческий продукт
Thunder
Привет, скажите пожалуйста, $in: [regex1, regex2, ...] вот это работает, но если на это поле поставить индекс, я так понимаю это перестает работать?)
Thunder
или как лучше решить задачу, в коллекции десятки миллионов документов с полем которое содержит все разнообразие browser language (Ru-kz, Ru-tw, ... таких вариантов тысячи) , нужно по списку префиксов, например ru, tw получить все многообразие для этих языков, работало $in: [regex1, regex2, ...] , но это на большой базе уже не прокатывает, добавление индексов привело к тому, что по регекспам перестали выбираться документы, только по полному совпадению.
Thunder
неужели нет способа лучше?)
Артем
И тогда задача сокращается до поиска вхождения по полю
Thunder
тогда да
Thunder
спасибо, я не подумал об этом, тогда действительно все упрощается. но не пойму как быть с теми данными что есть уже
Артем
https://www.mongodb.com/community/forums/t/combine-text-with-regex/153083/4 Не уверен, что это, но здесь как раз описывается поиск по маске с текстовым индексом
Thunder
разделить по полям мне нравится, но как быть с данными что есть не пойму пока. кроме как написать скрипт который обойдет все.
Alexandrr
разделить по полям мне нравится, но как быть с данными что есть не пойму пока. кроме как написать скрипт который обойдет все.
именно так, модифицировать данные, пока работаешь с коллекцией, сделай ее копию и играйся с ней, так работоспособность основной коллекции сохранится, а когда настроишь копию, просто синхронизируй данные и удали старую, а копию переименуй в оригинал, только в этот момент желательно всё запросы остановить, что бы пользователи не потеряли данные, которые в момент копирования и удаления коллекции были синхронизированы
Thunder
пользователей нет, данные поступают ежесекундно. сейчас сделаю поставщику данных новые поля, а для тех записей у которых нет новых полей пройдусь скриптом, и все будет замечательно)
Easy Rider
Если например у меня на сервере можно сделать снапшот диска, ну типа резервную копию, то монга в консистентном состоянии будет в этой резервной копии?
web
всем привет! подскажите пожалуйста как передать параметры сортировки в код express для mongodb? я так понял name это не переменная
RapidCodeLab
что понимается под "параметром сортировки"?
Easy Rider
да, https://www.mongodb.com/docs/manual/core/backups/#back-up-with-filesystem-snapshots
а как такое возможно вообще? снапшот что, мнгновенно делается? провайдер если че, вдсина... или там че, как бы райд?
Nick
а как такое возможно вообще? снапшот что, мнгновенно делается? провайдер если че, вдсина... или там че, как бы райд?
там приписка есть To get a correct snapshot of a running mongod process, you must have journaling enabled and the journal must reside on the same logical volume as the other MongoDB data files. Without journaling enabled, there is no guarantee that the snapshot will be consistent or valid.
web
что понимается под "параметром сортировки"?
параметр из фронтенда ну или константу объявить и передать вместо name тоже не получается
Easy Rider
по факту да мгновенно фиксируется версия
журнал по умолчанию включен?
web
тут у вас сортировка по полю name , -1 = descending
да, но я хочу ее из фронтенда тянуть передать параметром в асинхронном запросе
web
и name и -1 нужно с фронтенда тянуть
RapidCodeLab
sort({[field_name_variable] : [type_variable]})
web
sort({[field_name_variable] : [type_variable]})
можно тебя попросить немного подробнее рассказать как это сделать или где почитать?
RapidCodeLab
можно тебя попросить немного подробнее рассказать как это сделать или где почитать?
я не шарю в ваших нодах, просто загуглил ради интереса за5 секунд. наверно так [] lдрайвер ваш говорит монге что это путь до поля а не просто строка какая-то