Vladislav
Хотя если добавить поле prices, то оно успешно выводит массив из цен:
Vladislav
$addFields: { prices: "$products_in_date_1.items.productInfo.price", products_avg_1: { $sum: "$products_in_date_1.items.productInfo.price" } }
Vladislav
Но ни $sum, ни $avg не работает(( прям похоже на баг
Vladislav
Хотя заметил, что prices выводится как массив в массиве)))
Vladislav
"prices" : [ [ 3749, 5479, 3776, 14849 ] ],
yopp
$addFields: { products_avg_1: { $avg: "$products_in_date_1.items.productInfo.price" } }
пожалауйста, покажите исходный документ
Vladislav
пожалауйста, покажите исходный документ
вообще уже нашел способ. Но он ооочень костыльный) Хочется другой найти.
Vladislav
products_avg_1: { $avg: { $arrayElemAt: ["$products_in_date_1.items.productInfo.price", 0 ] }, }
Vladislav
Сейчас скину исходный документ
Vladislav
Предыдущая стадия вот такая:$addFields: { products_in_date_1: { $filter: { input: "$orders", as: "order", cond: { $gte: ["$$order.order.date", new ISODate('2019-09-01T00:00:00') ]} } } }
Vladislav
Хотя стоп. Походу это логично, что выводится массив в массиве))
Vladislav
для моего случая))
Vladislav
Но тогда меня интересует другое. Допустим у меня есть массив массивов: prices: [ [102, 52, 65], [54, 12, 42]] Как можно посчитать AVG по всем числам? То есть этот вложенный массив превратить в [ 102, 52, 65, 54, 12, 42] ?
Vladislav
В стадии $addFields/$project
Vladislav
$concatArrays походу то, что нужно)
Vladislav
Вопрос актуален :( $concatArrays не помогает.
Vladislav
$addFields: { prices: "$products_in_date_1.items.productInfo.price", ctc_prices: { $concatArrays: "$products_in_date_1.items.productInfo.price" }
Vladislav
Результат:
Vladislav
"prices" : [ [ 3390, 2355 ], [ 20132, 15128, 14118 ] ], "ctc_prices" : [ [ 3390, 2355 ], [ 20132, 15128, 14118 ] ],
Sebor▂▅▇█▓▒░
Митап: MongoDB и Яндекс.Облако в Москве 14 ноября в гости к Яндекс.Облаку приедет команда MongoDB: старший архитектор Виктор Кесслер и руководитель корпоративной и облачной стратегии Захир Абделухаб. MongoDB представит новые возможности СУБД и поделится планами на будущее, а разработчики управляемых БД в Яндекс.Облаке расскажут о Managed Service for MongoDB. Участие бесплатное. Мест в зале не много, поэтому нужно зарегистрироваться и дождаться подтверждения об участии. Регистрация и подробности Хотите выступить на митапе и рассказать о вашем сценарии использования MongoDB, как вы приняли решение использовать именно её, с какими проблемами встречались и как их решали? Пришлите @annapesh короткое описание своего кейса и несколько слов о себе и вашей компании. Длительность доклада 20 минут. Заявки принимаются 31 октября, 15:00.
Чё так много инфы то сдирают...
Artem
Кто сталкивался с проблемой подключения к атласу? { "name": "MongoNetworkError", "errorLabels": [ "TransientTransactionError" ] }
Maik
Подскажите как можно относительно быстро проверить что вносит нагрузку на БД. Раньше можно было провести беглую аналитику через http, по порту28017, но данную фишку выпилили еще в 3 версии.
Yaroslav
Добрый день, столкнулся с проблемой, есть приложение, каждые 5 минут запускается 15 задач по парсинг данных со соторннего апи, есть 3 бд(Master, Stage, Dev), данные из задач грузятся в master и через 15 реплецируются в Stage, во время репликации монго сжирает 6 ядер процесса и много ОЗУ, как все это оптимизировать? Данных много
Anonymous
Кто сталкивался с проблемой подключения к атласу? { "name": "MongoNetworkError", "errorLabels": [ "TransientTransactionError" ] }
Ирландский сервер MLab лежит пару дней, коли не более. ТП просит дать лог пинга и игнорирует жалобы. Американский работает.
Dmitry
Если мы про Дублин
Anonymous
Другого нет. У меня он timeoud вчера и ранее.
Dmitry
Другого нет. У меня он timeoud вчера и ранее.
mLab или mongoDB Atlas? Первый у меня уже месяцы лежит почему-то. Второй работает
Daniil
Через vpn не пробовали подключаться?
Dmitry
Через vpn не пробовали подключаться?
Я нет. Атлас работает, мне этого и хватает
Daniil
@dd_bb @yatoba
Anonymous
Через vpn не пробовали подключаться?
Комнадзор уже может в MLab ?
Daniil
Комнадзор уже может в MLab ?
тачки на амазоне в ирландии периодически оказываются недоступны из РФ у меня(
Nick
Ирландский сервер MLab лежит пару дней, коли не более. ТП просит дать лог пинга и игнорирует жалобы. Американский работает.
Проверьте ip на попадание в запрещенку. И докучи используйте трейсроут, у моих провайдеров запрещенка срезается на третьем хопе с говорящим назаванием
Anonymous
Уже снёс БД в Ирландии. ЧХ, американские адреса Комнадзоры не трогают.
Adel
Ребят, сорри за, возможно, глупый вопрос. Только узнал о Aliases в mongoose, хотел бы уточнить, стоит ли все поля модели писать изначально с ними?
Daniil
P
привет пытаюсь выполнить db.points.update({“array.prop”: {$exists:false}}, {$set: {“array.$.prop” : “value”}}, {multi:false}); получаю The positional operator did not find the match needed from the query. Unexpanded update: points.$.tags вроде по запросу все корректно или я что-то не понял?
P
да только имена другие
P
https://stackoverflow.com/questions/4669178/how-to-update-multiple-array-elements-in-mongodb пирводит такой же пример var query = { events: { $elemMatch: { profile: 10, handled: { $ne: 0 } } } }; while (db.yourCollection.find(query).count() > 0) { db.yourCollection.update( query, { $set: { "events.$.handled": 0 } }, { multi: true } ); }
Serhii
всем привет, find операция возвращает обьект такого вида, вместо документов, что я не так делаю?
Bohdan
запрос покажи
Serhii
к проду просто надо было подконнектится
Bohdan
заработало уже?
Serhii
не)
Serhii
все уже гуд, toArray надо было вызвать
Bohdan
какая-то сингулярность у тебя там творится)
Bohdan
без toArray он тебе возвращает какие-то метаданные про твою коллекцию, а с ним возвращает нормальные документы?
Serhii
da
Serhii
интуитивно непонятно, почему я должен вызывать toArray
Daniil
потому что без явного вызова метода toArray нативный драйвер возвращает объект курсора
Serhii
@d_lebedinsky это факт)
Daniil
Собственно тут - https://mongodb.github.io/node-mongodb-native/3.3/reference/ecmascriptnext/crud/ В разделе Read Methods коротко, но ясно говорится, что и как -
Daniil
The main methods for querying the database are find and aggregate. In this CRUD tutorial we will focus on find. The find method returns a cursor that allows us to operate on the data. The cursor also implements the Node.js 0.10.x or higher stream interface, allowing us to pipe the results to other streams. Let’s look at a simple find example that materializes all the documents from a query using the toArray method but limits the number of returned results to 2 documents.
Dmitryi
Привет. Подскажите как узнать текущие запросы от конкретного пользователя в версии 4.0.8 ?
yopp
Привет. Подскажите как узнать текущие запросы от конкретного пользователя в версии 4.0.8 ?
db.getSiblingDB("admin").aggregate( [ { $currentOp : { allUsers: true, idleSessions: true } }, { $match: {"effectiveUsers.user": "<user>"}} ])
Anonymous
Всем добрый вечер, кто может подсказать, почему mongodb не впускает ("Authentication failed") version: "3" services: mongo: image: mongo restart: always container_name: "mongodb" volumes: - /data/db:/data/db environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: 12345 ports: - "27017:27017" пробую по всякому, и через db.auth() и через studio3t
Aʟᴇx
Вводишь URL именно той монги, которую деплоишь?
Aʟᴇx
Метод авторизации SCRAM-SHA256?
Aʟᴇx
База данных для авторизации - admin?
Aʟᴇx
С помощью монговского шелла подключиться пробовал?
Anonymous
на хосте одна монга, та в контейнере, прокинута на дефолтный порт, в оф документации монги именно такой конфиг docker-compose пробывал ко всем базам подключаться, а вот метод авторизации неявно указывается
Anonymous
самое интересное и через шелл конфигал) все равно не пускает везде говорит Auth failed
Aʟᴇx
самое интересное и через шелл конфигал) все равно не пускает везде говорит Auth failed
Слишком мало информации от тебя, чтобы сказать в чем проблема. УМВР
Anonymous
да понимаю, думаю с доки раскурю
Anonymous
какаой то челик просканил открытую, дропнул базу и создал базу RECOVER, в которой написал свою почту )
Aʟᴇx
Так может он и пароль поменял?
Aʟᴇx
Если у тебя база дропнута
Aʟᴇx
То зачем логиниться?
Aʟᴇx
Бэкап есть?
Anonymous
скомпрометированная монга была бинарной, перенес в контейнер, да бекап уже восстановил
Anonymous
ну сейчас на локалхосте думаю найду в чем дело, просто интересно по всякому явно указываешь логин, пасс, а db.auth() не пускает)
Yuriy
Здравствуйте! Может кто подскажет как подключиться к монго серверу через компас с ssl?
Anonymous
Приветствую. Можно как-то обойти Монго ошибку limit cannot be used with distinct? Ищу уникальные значения, но их может быть много, хотел ограничить длину их массива limit'ом.
yopp
limit не может быть использовать с distinct, потому что limit ограничивает число записей в выборке, а значит disctinct не сможет пройти все значения, а значит он вернёт не все уникальные значения