Андрей
Всем привет, как суммировать все поля с одним уникальным uid, с фильтром, к примеру sex: 1, date: 5 ?
Nick
Всем привет, как суммировать все поля с одним уникальным uid, с фильтром, к примеру sex: 1, date: 5 ?
агрегация с $match для фильтрации и $group по uid с $sum для суммирования
Андрей
агрегация с $match для фильтрации и $group по uid с $sum для суммирования
{ $group: { uid: UNIQUE, count: { $sum: "$count" } } } Тупо не понял, как групировать по uid... И как я понимаю, надо потом отдельно выносить $sum?
Андрей
$group:{ _id: "$uid" вмместо uid название поля по которому надо схлопывать }
Down.aggregate([ { $match: { bot: req.body.bot, date: { $gte: moment().utc().startOf('day').toDate(), $lte: moment().utc().endOf('day').toDate() } } }, { $group: { _id: "uid" } } ]).then((ok) => { console.log(ok) }) а как теперь вывести тут count всех нужных?)
Андрей
а суммирование куда подевали?
Там не суммирование оказалось надо, а подсчет уникальных строк по match((
Nick
Там не суммирование оказалось надо, а подсчет уникальных строк по match((
ну тогда просто _id вытаскиваете, в нем будут уникальные uid-ы
Nick
Пример выше тупо null выдает...
знак доллара потерян $uid
Андрей
знак доллара потерян $uid
Спасибо) как всегда невнимательность))
Yaro
джигит иван
привет ребят, пару месяцев не списывались деньги за пользование heroku и вот теперь такое. другие карты тоже не могу привязать живу в беларуси
Vyacheslav
может в саппорт хероку написать, а не в чат монги?)
Алексей
Л- огика
Mllse
Может кто нибудь столкнулся с такой проблемой. email является уникальным, но когда пытаюсь создать второй юзер без указания email: MongoServerError: E11000 duplicate key error collection: baksterandcat.users index: email_1 dup key: { email: null }
Nick
Может кто нибудь столкнулся с такой проблемой. email является уникальным, но когда пытаюсь создать второй юзер без указания email: MongoServerError: E11000 duplicate key error collection: baksterandcat.users index: email_1 dup key: { email: null }
ну так null это нормальное значение и уникальност ьне допускает наличия второго нула. если нужно только по не нуловым эмейлам иметь уникальность, то два варианта: первый самый нормальный - не использовать нул и не создвать в базе поле если значения нет второй на случай если лень - sparse уникальный индекс https://www.mongodb.com/docs/manual/core/index-sparse/#sparse-index-with-unique-constraint
Артем
Всем привет. Подскажите пожалуйста, выходит ошибка при запуске проекта. Хочу подключить БД mongo?
Алексей
монгу то запусти)
Артем
на указанно адресе нет монги
Подскажите пожалуйста,как решить такую проблему,в докере компос прописал,зависимости указал.
Артем
Что не так делаю
CrusaderX
Так у тебя в компоузе не указаны порты, у тебя эти порты открыты в нет неймспейсе контейнера (там же и слушаются). Надо наружу выкинуть, типа ports: - 27017:27017
Nick
Что не так делаю
для начала не разобрались в докере и как работать с сетью при его использовании. Внутри докер сети надо ипсользовать имена контейнеров для обращения к сервисам, а для доступа со своего компа нужно все пробрасывать либо использовать host.docker.internal
Mllse
Do you mean that Node mailer Refers to our chat for Mongodb?
Алексей
но он же сказал волшебное слово!
Алексей
did you allowed 3-d parties app in security options of your gmail account?
𓆉 𝖙𝖚𝖗𝖙𝖑𝖊𝕶𝖎𝖓𝖌 ࿐
Tentura
Привет всем, подскажите пожалуйста по задаче - есть кластер из нескольких реплик и мастера, необходимо перенести большую db, в новый кластер, который формируется только из нее. Подключил машину в репликацию, реплика догнала данные, правильно ли я понимаю, что теперь для формирования нового кластера, мне необходимо на новой машине в конфигах указать новый replSetName, keyFile и подтюнить под конфиги машины, ну и соответственно вывести из репликации?
Александр
Добрый день Подскажите, пожалуйста, хочу шардировать коллекцию и пытаюсь это сделать через миграции (не уверен, что это вообще работает), то что делает sh.shardCollection(). В результате получаю странную ошибку, потому как операции дроп в миграции совсем нет. Запрос выполняется на бд - admin Миграция: [ { "shardCollection": "email.entity", "key": { "entity_uuid": 1 } } ] Ошибка: 2023/10/13 15:32:06 Start buffering 1/u create_collection 2023/10/13 15:32:06 error: drop migrations collection failed in line 0: (details: (IllegalOperation) Cannot drop collection in 'admin' database in sharded cluster) make: *** [migrate-dev-cfg-up] Error 1 Что я делаю не так?
Алексей
да, запусти монгу)
Turia
Кто может подсказать в схеме построения
Turia
Привет всем
Нуриддин
Кто может подсказать в схеме построения
В mongo желательна одна схема построения чтобы всё объекты одного класса находились в одной коллекции
Нуриддин
Если есть ещё один класс то для него строится отдельная коллекция в той же базе что и первая
Нуриддин
Или ты что-то другое имел(а) ввиду?
Сергей
Добрый день. Подскажите, как можно поправить mongodb multiplanner encountered a failure while selecting best plan :: operatin excedeed time limit / Правильно я понимаю,что нужно увеличить параметр maxTransactionLockRequestTimeoutMillis?
Алексей
я бы начал с MAX TIME MS
Сергей
я бы начал с MAX TIME MS
Этот параметр можно выставить в консоли и как правильно выбрать размер?
Алексей
например вот так https://www.mongodb.com/docs/manual/reference/method/cursor.maxTimeMS/
Сергей
то есть получается надо в самом коде приложения параметр увеличивать?
Алексей
ты вроде выше писал про консоль. если ты через какой то драйвер с монго работаешь, то думаю в нем есть все эти настройки.
Сергей
ты вроде выше писал про консоль. если ты через какой то драйвер с монго работаешь, то думаю в нем есть все эти настройки.
Да, через консоль. То есть в консоли надо выполнить db.collection.find( { <query> }, { <projection> } ).maxTimeMS( <milliseconds> )
Сергей
Или есть способ проще?
Алексей
а куда проще, чем указать явно и попробовать? видимо у тебя коллекция большая или запрос какой то непростой и наверное индексов нет...
Сергей
Запрос сложный )
Сергей
Раньше не было этой ошибки, в последнее время появилась
Алексей
ну возможно раньше коллекция была не такая большая как сейчас
Сергей
ну возможно раньше коллекция была не такая большая как сейчас
А можно как то проверить, индекс используется на этой коллекции или нет?
Алексей
а ты открой свою коллекцию через компас, он показывает и наличие индексов и использование их, кроме того там можно сделать запрос и нажать експлейн чтобы посмотреть использование индекса
Алексей
в консоли это тоже можно делать, но мне компас нравится
Сергей
У нас компас нельзя
Сергей
только консоль
Алексей
ну там тоже експлейн работает и покажет юзает ли индекс
Сергей
понял, спасибо
Сотрудник 236
Привет всем. Есть ли готовое решение по описанию схем/валидации данных? Встроенный валидатор простенький.
Алексей
встроенный во что? в монге?
Сотрудник 236
Ага
Сотрудник 236
Я свой написал, но уверен что есть что-то удобоваримое.
Алексей
могу только на доку дать ссылку, сам давно пробовал https://www.mongodb.com/docs/manual/core/schema-validation/
Алексей
если ты на каком то ЯП пишешь, то там нередко есть свои средства отвалидировать до отправки в монгу
Алексей
я например в монге не валидиирую, внутри приложения это происходит до момента отправки
Lonly
Добрый день Подскажите пожалуйста Поднимаю докер с монгой и докер с вебприложением. Данные в моего меняются и нужно чтобы после выключения и включения база оставалась с новыми изменениями. Есть ли у кого-то пример докеркомпоуза для этого? И как вообще правильно сохранять данные бд? mongodump?
Алексей
тебе нужно данные хранить не в контейнере, а на своем диске, примаунтив его к докеру
Alex
Правильно не класть базу в докер)
Алексей
вот тут есть решения и для докера и для композа
Алексей
https://stackoverflow.com/questions/35400740/how-to-set-docker-mongo-data-volume
Lonly
тебе нужно данные хранить не в контейнере, а на своем диске, примаунтив его к докеру
Это я понимаю, но не особо понимаю как сохранять данные в примаунтином вольюме
Алексей
ну ты же монгу можешь запустить указав где именно хранить данные, это как раз та папочка что докер бережно сохранит на твоем диске и подключит при следующем запуске