✙ Nikita
еще рассматривал вариант передать отдельно массив транзакций, и массив клиентов, и потом клиент пусть сам выводит их, делая поиск по id
maxsimych
Artem
как использовать setDefaultsOnInsert в Model.create ?
Artem
Anton
Странно, делаю 4 Compound-Индекса для такого запроса. [model-predict], [model-owners_num], [model-vin], [model-year] и в explain() без hint() получаю совсем не оптимальную картину - все доки из коллекции перебраны
yopp
Пересечение индексов не всегда эффективно и планировщик в монге достаточно консервативен.
Вы можете посмотреть какие планы запросов рассматривались планировщиком, какие результаты при проверке этих планов были получены
https://docs.mongodb.com/manual/reference/method/PlanCache.list/#PlanCache.list
Ну и $not условия обычно незначительно уменьшают размер выборки, так как исключают небольшое число документов из общего множества. Плюс у вас там ещё и $or что тоже не уменьшает выборку.
Возможно в вашем случае поможет один compound индекс и переписать условия таким образом, чтоб убрать $not
Anton
yopp
Спасибо
Ну и если у вас возникают ситуации со сложными условиями по множеству параметров, то вероятно Attribute-Value модель будет более эффективной
https://t.me/mongodb_ru/82526
Физик-ядерщик
Поиск по "_id" быстрее чем по полю, или без разницы?
yopp
Физик-ядерщик
✙ Nikita
имеется ввиду типа связь автора с книгами?
Artem
Wow thx!
🤦♂
Anton
Spam alert
Dmytro
Dmytro
Dmytro
всем привет, после каждого запроса в express js через middleware жду jwt token авторизации в заголовке, скажите пожалуйста, где лучше всего хранить его?
Dmytro
Но не в mongo db точно.
Joe
Но не в mongo db точно.
Его не надо хранить. Его надо распарсить, проверить и исходя из этого пропускать либо ошибку кидать
Vladimir
всем привет, после каждого запроса в express js через middleware жду jwt token авторизации в заголовке, скажите пожалуйста, где лучше всего хранить его?
Существует express session и jwt и последний действительно хранить не нужно, за исключением случаев когда вы создаете refresh_token. Сессии же как и рефреш токены, рекомендуют хранить в быстром кэше, конкретно в реддисе, но если вы только начинаете, наверное нет смысла с нуля зоопарк инфраструктуры разводить, и можно временно и в монге это держать, а по необходимости разносить.
Nick
если под подключениями понимается количество коннектов - то практически нет, это не постгря где процесс стартует на каждый новый коннект.
Danil
Всем привет, подскажите в чем может быть проблема?
Пытаюсь создать задачу и записать ее в базу данных http://joxi.ru/v29bXzlUpXqKvA
Но почему-то получаю вот такую ошибку TypeError: result.save is not a function
Nick
Oleg
Есть коллекция с транзакциями юзеров.
В ней есть owner_id и value.
Для вывода баланса я делаю агрегацию и суммирование value для owner_id.
Задача: вывести место, на котором находится юзер среди всех юзеров сгруппированных и отсортированных по value. Если проще, то хочу, чтобы юзер знал своё место в топе.
Как это сделать красиво?
Danil
SuleYman
Приветствую, делал сортировку по полю дата, наткнулся на интересный синтаксис
$filter = [];
$options = ['sort' => ['timestamp' => -1]];
$client = new MongoDB\Client('mongodb://localhost');
$client->mydb->mycollection->find($filter, $options);
yopp
Oleg
yopp
Посчитать количество пользователей с балансом больше чем у него
yopp
Индекс по балансу
yopp
Можно ещё сразу сортировать, но это дорого, если транзакций много
Влад
как думаете, если у меня в коллекции счет документов будет идти на миллионы (продажи сервиса), сколько индексов я могу сделать на нее, учитывая, что работаю я в атласе. так что бы не было слишком большой задержки между основной и индексами
Влад
может у кого-то есть реальные примеры. понимаю, что от тарифа зависит и т.д.
yopp
В одной коллекции может быть не больше 64 индексов. Сомневаюсь что вам понадобится такое количество.
Пока у вас не возникнут реальные проблемы, смысла что-то оптимизировать нет.
Затраты на атлас будут зависеть от множества параметров, включая объём трафика, количество IO плату по тарифу и тд
Влад
yopp
Большое количество индексов и проблемы в связи с этим, обычно сигнал к изменениям модели данных
Физик-ядерщик
Ребят, как сохранить пустой массив?
Физик-ядерщик
Или лучше этого не стоит делать?
Физик-ядерщик
Проблема: При обновлении документа, а именно, при удаление последнего элемента из массива, массив не сохраняется
yopp
✆
Есть сервер полноценно рабочий с панелью управления хостингом. Бд MySQL/mariya на сервере и postgresql. Можно установить рядом Mongodb и как это сделать?? Или нужно другой сервер???
✆
yopp
Две базы данных на одном сервере лучше не деплоить
yopp
Они обе будут бороться за память и ничем хорошим это не закончится
yopp
Если прямо очень надо, то тогда в докере/витруалках с квотами
yopp
yopp
Монга при операциях с массивами обычно не удаляет поле
Физик-ядерщик
Понял, спасибо за ответ
yopp
yopp
Или в атласе
✆
На моем сервере уже есть поддержка node js
✆
✆
Danil
Подскажите пожалуйста, а можно как-то изменить статус на true нужного мне вопроса http://joxi.ru/n2YpZM5UewOkRm
Danil
Имеется вот такая разметка http://joxi.ru/L21gXqbT0vJwbr
✆
Физик-ядерщик
Artem
А как хранить единичные элементы в монге?
типо, константу какую-то?
ולאד
db.table.insertOne({"value":"const"})
Artem
ולאד
db.table.findOne({"id":"idvalue"})
Artem
Artem
константу мне как достать
ולאד
выборка по id
Artem
Artem
напиши как мне её достать
Alexander
всем привет
Alexander
вопрос есть по переносу репликасета. может кто проконсультировать?
ולאד
напиши как мне её достать
я пока начинаю изучать но
db.table.insertOne({"key":"названиеключа","value":"вашаконстанта"})
достать - выборка по ключику
db.table.findOne({"key":"названиеключа"})
в приложении забираешь значение value
Artem
Artem
ну ладно, спасибо
Artem
придется значит так