Bohdan 🕊️
Сейчас гляну
Bohdan 🕊️
CrusaderX
господа, добрый вечер. Подскажите, пожалуйста, делаю аггрегацию
db.test.aggregate([
{ '$match': {'status': {'$in': ['a', 'b', 'c']}}},
{ '$group': {'_id': '$status', 'count': {'$sum': 1}}},
{ '$sort': { _id : 1 } }
])
получаю на выходе
{ "_id": "b", "count": 13 }
{ "_id": "c", "count": 16 }
как сделать так, чтоб если a не существует, это все равно попало с результатом, допустим, 0 значением? $ifNull чет неправильно походу юзаю, не получается сделать
Vitalii
Всем привет!
Если не затруднит, то подскажите пожалуйста в какую сторону копать.
У нас есть таблица с ~300k записями.
Мы к ней обращаемся через Pymongo и фильтруем объекты по параметрам (на все фильтруемые поля есть индексы)
Проблема в том, что время фильтрации у нас может быть как 3 секунды так и 15, а это очень долго, хотелось бы это время уменьшить в разы.
Еще есть очень интересное поведение, когда через pymongo я отправляю одинаковые запросы, первы запрос за 15 секунд обрабатывается, потом повторный уже за 10, а еще один такой-же за 1 секунду, после перезапуска сервера с pymongo, время на выполнение такого же запроса 1 секунда (с такими же результатами)
Через тот-же Mongodb compas все отрабатывает моментально.
Сервер с Pymongo и MongoDB расположены не в одной сети
yopp
Всем привет!
Если не затруднит, то подскажите пожалуйста в какую сторону копать.
У нас есть таблица с ~300k записями.
Мы к ней обращаемся через Pymongo и фильтруем объекты по параметрам (на все фильтруемые поля есть индексы)
Проблема в том, что время фильтрации у нас может быть как 3 секунды так и 15, а это очень долго, хотелось бы это время уменьшить в разы.
Еще есть очень интересное поведение, когда через pymongo я отправляю одинаковые запросы, первы запрос за 15 секунд обрабатывается, потом повторный уже за 10, а еще один такой-же за 1 секунду, после перезапуска сервера с pymongo, время на выполнение такого же запроса 1 секунда (с такими же результатами)
Через тот-же Mongodb compas все отрабатывает моментально.
Сервер с Pymongo и MongoDB расположены не в одной сети
В этом случае рекомендую сначала исключить что проблема в запросах, включив профайлер: https://docs.mongodb.com/manual/tutorial/manage-the-database-profiler/
Если в него эти запросы попадать не будут, то искать проблемы в районе сети.
Если запросы в профайлер попадают, то по explain(executionStatus: 1) смотреть почему запросы выполняются столько времени
ildar
db.contacts.find({"account" : "01_ХХХХХХХХХ", "phoneNumber" : {$regex: /^0/i}}).forEach(сontact =>
{
print("firstName", "lastName", "phoneNumber")
})
подскажите пожл, как правильно в этом случае использовать forEach и print, нужно вывести список их коллекции для каждого юзера
Akhil
Добрый вечер, подскажите пожалуйста как обычно реализовывается пагинация в Mongo
Особенность в том, что нужные мне данные я могу получить только путем агграгации lookup, то есть Joinом коллекций
Понимаю, что агрегация не возвращает курсор, но все таки
Limit offset не предлагать, сейчас так и делаю, но кажется это не самый оптимальный вариант
камил
Привет, можно как-то проверить все документы на существование определенного поля?
Cloud
Cloud
Nick
Akhil
Nick
вы хотите работать со снепшотом данных на момент первого запроса?
Akhil
Akhil
Nick
единственное что приходит в голову транзакции, а так это повод пересмотреть требования
Akhil
Alex
Всем првет, подскажите в чем дело? Почему у меня не работает фильтр? Для наглядности показываю тут, в консоли такая же фигня
Alex
Cloud
Alex
о, точно. А почему по второму полю не хочет?
Alex
insci
Подскажите пожалуйста решение для бекапов монги. Выбор остановился на https://ottomatik.io/, но может кто посоветует что-то другое?
Из требований: очень желательно "облачное" решение
S
Всем привет! Подскажите плз... есть вот такой запрос в бд:
S
const result = await findOne(
'sets',
'Get set by id',
{ subId: id },
projection.sets,
{ lean: true },
[{ path: 'content.id', select: offers }],
);
const offers = _id status state company;
S
Все ок работает, но в result приходит company в виде строки с id
S
А мне нужен обьект company целиком
S
Как это сделать?
A
подскажите как правильно условия прописать в фильтре , мне нужно сделать поиск в массиве accounts по полю _id
Амир
подскажите, почему ошибка? или как в данном случае передать несколько файлов в одной formData? использую multer
Амир
камил
Привет, можно как-то сделать поиск поля с условием?
камил
типо
find('field', chat_id=123)
Дмитрий
Дмитрий
типо
find({'field.chat_id':123})
Сергей
Ребят, подскажите как сделать, что бы toString работал только если есть значение?
У меня пустая база, и этот параметр выдает ошибку
Unrecognized expression '$toString
Сергей
Сергей
ᗪEᔕIGᑎ
Всем салют, вопрос по поводу восстановления данных.
Был кластер из трёх серверов, работал в реплике. Два сервера сгорели. Остался каталог с файлами
admin config diagnostic.data files journal local _mdb_catalog.wt mongod.lock sizeStorer.wt storage.bson uploads WiredTiger WiredTigerLAS.wt WiredTiger.lock WiredTiger.turtle WiredTiger.wt
БД сейчас пустая
show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
Каким способом можно восстановить?
ᗪEᔕIGᑎ
Вопрос. Прежде чем восстанавливать нужно настроить реплику?
Bohdan 🕊️
sudo mkdir -p /data/db
mkdir: /data/db: Read-only file system
Пытаюсь это создать, но пишет ошибку. Что делать?
Shokha
hello
Maksym
Всем привет, как сделать чтобы у меня поиск срабатывал так что когда ничего не вводится в text, то есть приходит пустая строка ничего не выводилось ? Сейчас на пустую строку приходят сразу все данные, а мне понятное дело это не нужно
Nick
Maksym
Nick
Maksym
ну на фронте тоже сделаю
Maksym
или нет
Maksym
нужен же новый запрос чтобы пустые данные пришли и затерли предыдущие
P1GAS
P1GAS
И если инпут пустой, тогда очищаем значения на фронте, без запроса на бек
ᗪEᔕIGᑎ
ᗪEᔕIGᑎ
есть кто живой нужна срочно консультация по восстановлению бэкапов, платно
ᗪEᔕIGᑎ
2500 человек в чате и нет экспертов, кому деньги нужны?
✨ Uni
Эксперты или спят или отдыхают
ᗪEᔕIGᑎ
эксперты всегда ресёрчат
ᗪEᔕIGᑎ
даже во сне
✨ Uni
Значит этот чат не находится в фокусе внимания
камил
✨ Uni
А вообще вопрос сто процентов решается Гуглом
✨ Uni
ᗪEᔕIGᑎ
проспамить личку на 2,5к
камил
в области гадания
✨ Uni
ᗪEᔕIGᑎ
Давай по делу, у нас 700 000 пользователей отключено. А ты глумишься скот.
ᗪEᔕIGᑎ
пардон за выражения
✨ Uni
ᗪEᔕIGᑎ
пошёл спамить личку ждите оффера в лс, извинияюсь заранее.
Yura
а что случилось то? Опишите ситуацию здесь, может кто и даст совет
ᗪEᔕIGᑎ
слетала реплика из трёх нод, осталась рабочая одна нода, есть локально файлы монги. Нужна консультация как восстановить локлаьные файлы в db.
ᗪEᔕIGᑎ
бэкапов нет
ᗪEᔕIGᑎ
только локальные файлы
ᗪEᔕIGᑎ
могу прислать логи после попытки восстановления, но у нас в команде нет экспертизы по монги. Возможно что то делали не корректно. Но загрузка началась и в процессе посыпались ошибки.