Alexander
Nick
вылетает пайплайн
А какого поведения хочется? Есть же спека языка запросов и вы должны формировать валидные запросы, если хотите чтобы они исполнились. Аналогично во всех других субд и не только.
Alexander
Nick
Где хранить? В монге вполне себе можно использовать пустые объекты в значениях полей
Vladyslav
@apivovarov
https://stackoverflow.com/questions/18657071/why-mongoid-doesnt-save-boolean-as-true-or-false
Alexander
KisaPS
Как могу составить запрос к Монго на обновление документов, если в документе порядка 100+ полей. А обновить необходимо только существующие в запросе (порядка 80)?
Прописывать в Update все поля ?
Replace не подходит, тк затирает весь документ
Alexandrr
Alexandrr
Alexander
Vladyslav
Alexander
Alexander
Alexander
KisaPS
Vladyslav
мб уже почитатет что происходит и когда?
разницу между shell`ом и backend + ваш фрейморк => mongo
Alexander
Alexandrr
Боль 😢
почему боль?
update({filter_key: value}, {your_fields: foo, ..., your_field: foo})
Vladyslav
Nick
Nick
KisaPS
Nick
Дима
Может быть такое что при удалении объекта из массива если он по середине, то вместо него становится null?
Dmitry
of Astora 𒉭
привет всем
у меня есть массив данных - Object.keys. и по этим Object.keys мне нужно найти данные внутри базы с помощью метода find
-> find({Object.key: value})
of Astora 𒉭
возможно ли без итерации массива, сразу же искать
Asanali
Всем привет, как посмотреть полную команду в currentOp
"command" : {
"$truncated": <string>,
"comment": <string>
}
У меня как раз написано $truncated и она сжата
Egor
ребят привет, как мне обновить поле ракетс, дополнив его еще одним объектом?
Egor
Egor
по типу в послднем авейте хотел апдейтить, но чет догнать не могу как это на монго синтаксисе записать
Egor
Egor
ну вот я хочу засортить аррей по полю клосед если оно нулл, и туда полжить еще объект
Egor
кажется что проще в отдельную коллекцию сохранять гейм a в сессии класть ссылку на этот гейм
Alexandrr
Egor
const update = await Game.findOneAndUpdate({ _id: oldGameId }, {
$set: {
["rackets"[racketPlaytime.racketId]]: {
playTime: calculatedPlayTime
}
}
});
это валидный апдейт по ключу поля плейтайм?
Artem
Привет.
Ребята, подскажите по росту БД не понимаю как устроено.
Я организовал удаление устаревающих данных, но не по ttl, а в сервисе владельце БД есть процедура, которая раз в день по определенному признаку удаляет данные.
Предполагалось, что новые записи сперва начнут занимать память, которая освободилась от удаленных данных. При этом специфика очистки такова, что удаляется за день больше чем появляется, так данные удаляются за периоды, в которые ранее было больше нагрузки.
Но база продолжает рост, +- с такой же динамикой как до начала удаления. Статистика БД показывает меньшее количество записей в коллекциях, но при этом болший занимаемый объем памяти.
Какие процедуры нужно выполнять после обычных delete-ов?
Artem
Привет.
Ребята, подскажите по росту БД не понимаю как устроено.
Я организовал удаление устаревающих данных, но не по ttl, а в сервисе владельце БД есть процедура, которая раз в день по определенному признаку удаляет данные.
Предполагалось, что новые записи сперва начнут занимать память, которая освободилась от удаленных данных. При этом специфика очистки такова, что удаляется за день больше чем появляется, так данные удаляются за периоды, в которые ранее было больше нагрузки.
Но база продолжает рост, +- с такой же динамикой как до начала удаления. Статистика БД показывает меньшее количество записей в коллекциях, но при этом болший занимаемый объем памяти.
Какие процедуры нужно выполнять после обычных delete-ов?
Соль в том что продолжает рост размер бэкапа, а цель была его снизить, предварительно сильно уменьшив.
Vladyslav
Vladyslav
Vladyslav
https://www.mongodb.com/docs/manual/faq/storage/#faq-disk-size
тут можно прочесть и вероятнее всего вам нужен compact
Egor
а как можно объект дополнять по анлогии с пушом? типо:
await User.findByIdAndUpdate(userId, {
$push: {
[`inventory.racket`]: item
}
});
только для объекта желательно без мутирования как в этом примере:
await Game.findOneAndUpdate({ _id: game.oldGameId }, {
$set: {
"rackets": {
[racketPlaytime.racketId]: { ...calculatedPlayTime }
}
}
});
Artem
Дело в том, что даже в этих ссылках упоминается, что освобожденное место должно использоваться монгой. И compact его высвобождает операционке.
А у нас как будь то освобожденное место не используется, и все время БД растет.
🅰️nimeCoder
бд не высвобождает ранее зарезервированную память на диске
🅰️nimeCoder
а я походу не дочитал)
Егор
Ребят, подскажите пожалуйста. Мне нужно внутри кластера с папкой создать ещё одну папку, как это сделать?
p.s. Посмотрел, через MongoCompass нельзя, попробовал через mongosh и mongod что-то тоже не выходит
Nick
Nick
Егор
Нет, на моё усмотрение
Nick
обычно делают поле с идентификатором и по которому идет разделение (собсна подход называется мультитенантность). И данные хранятся в одной БД и в общих коллекциях. как раз решает вопрос с тем как бы много вроде бы независимых но одинаковых по структуре баз везти
Егор
Хорошо, спасибо
Егор
Если сделать такую структуру, то переживаю за производительность, если будет 1000 клиентов, не долго ли id будет искаться?
lmn
тыща клиентов куда? вы вопросы на ходу придумываете? просто чтобы что то спросить
Alexandrr
Viktar
Но надо учесть секьюрность. Если у них будет прямой доступ в базу.
Nick
думаю до вопросов безопасности очень далеко)
Andy
Всем привет. Подскажите, пожалуйста, кто-то пробовал FerretDB https://www.ferretdb.io/ как альтернативу MongoDB. Если да, то поделитесь фидбеком, как работает, какие подводные камни есть, есть ли возможность переехать из MongoDВ в FerretDB без существенных доработок?
Yury
Попробуй курс по монге на codeacademy. Там базовые вещи с теорией и практикой, которая автоматически проверяется компом
https://www.codecademy.com/learn/learn-mongodb
Yury
Но агрегаций там нет, кажется
Yury
Еще вот практика
https://www.w3resource.com/mongodb-exercises/
Yury
И вот
https://www.w3schools.com/mongodb/mongodb_exercises.php
Nick
Всем привет. Подскажите, пожалуйста, кто-то пробовал FerretDB https://www.ferretdb.io/ как альтернативу MongoDB. Если да, то поделитесь фидбеком, как работает, какие подводные камни есть, есть ли возможность переехать из MongoDВ в FerretDB без существенных доработок?
судя по
The core of our solution is a stateless proxy, which converts MongoDB protocol queries to SQL, and uses PostgreSQL as a database engine.
теряется полностью все преимущества с репликами и шардированием. А по сути вопросы будут к потгресу в части сопровождения. Он умеет в jsonb который наверняка там используется для хранения документов.
Решение уровня - мы устали админить монгу, но софт переписывать не хотим, поставим проксю и завернем все в ПГ.
Начинать новый проект на нем смысла нет, проще сразу уже PG взять.
А про переезд главное миграцию пережить
Artem
Ребят, всем привет.
Подскажите пожалуйста подскажите, как сделать полнотекстовый поиск в mongo db (на русском языке)"locale", сейчас использую => collation: { locale: 'ru_RU' }
ru тоже пробовал
Artem
Но ни чего не выводит
Nick
Artem
а что вы хотите из "полнотекстового"?
у меня есть фильтры, в которых есть данные, так как их много что бы клиент вводил начало какого то определенного данного, а выводилось все возможные данные с содержанием этих символов
Artem
Допустим сюда я начинаю что то вводить
Artem