Anton
Ничего не понятно
Shokhboz
Ничего не понятно
Но очень интересно 🤣
Ярослав
Помогите пожалуйста очень срочно. Нужно написать аггрегатную функцию, которая будет брать значения из location.ll и будет добавлять их в корень текущего документа в виде отдельных полей "долгота", "широта"
_nikita
Подскажите пожалуйста, как можно найти объект, в масссиве из объектов? {"Staff":{$elemMatch: {"Login":"LYTK4"}}} выводит все элементы
Anton
{"Staff.Login":"LYTK4"}
Anton
попробуй
_nikita
:(
_nikita
yopp
:(
find правильно отрабатывает и возвращает вам документ целиком
yopp
если вы хотите чтоб вернулся только совпавший элемент массива используйте $elemMatch в проекции
yopp
https://docs.mongodb.com/manual/reference/operator/projection/elemMatch/
_nikita
спасибо огромное
Ярослав
Ярослав
т.е. взять location.ll[0]
Ярослав
и location.ll[1]
Ярослав
и вот так тоже
Anonymous
можно подробную статью на разницу aggregation и find?
yopp
и вот так тоже
тогда так https://mongoplayground.net/p/uem8pDvqHai
Ярослав
но я так понию оно не будет добавлять их в БД, оно добавит только вот в этом запросе
Ярослав
а в бд ничего не изменится
Ярослав
да?
Ярослав
yopp
да, если вы хотите обновить документы, то вам необходим updateMany с aggregation pipeline https://docs.mongodb.com/manual/tutorial/update-documents-with-aggregation-pipeline/
Ярослав
а как к этому запросу добавить чтобы обновлялось и в бД?
Ярослав
можеет 1 раз показать пожалуйста
Ярослав
так просто не работает
Ярослав
всё, разбрался
Dmitriy
Коллеги, добрый день. Помогите пожалуйста разобраться с accamulate Я внутри хочу сделать проверку на дату accumulate: `function(state, order) { if(order.status === 'success' || new Date(order.payedAt) >= new Date(${lowBoundary}) ) { ........ } }` Как это правильно сделать? Ловлю ошибку SyntaxError: missing ) after argument list :
Dmitriy
lowBoundary - Это объект Date
_nikita
https://docs.mongodb.com/manual/reference/operator/projection/elemMatch/
Почему-то всеравно выводит весь докумет
Дамир
Здравствуйте. Нет, сами фото хранятся на хостинге
Al
> db.users.getIndexes(); [ { "v" : 2, "unique" : true, "key" : { "_id" : 1, "friends.user" : 1 }, "name" : "friends_unique" } ] Почему может не работать такой индекс?
Al
Пробовал создавать/удалять. Через монгус тоже пробовал UserSchema.index({ _id: 1, "friends.user": 1 }, { unique: true, name: "friends_unique" }); И все равно он пропускает update вставляющий во вложенный массив того же самого друга
Ярослав
Помогите пожалуйста написать агрегатную функцию. У нас вот есть 2 коллекции. Агрегатная функция должна: Для каждого документа из первой коллекции найдите документ из второй коллекции по странам соответственно и подсчитайте разницу между общим количеством студентов и текущим количеством студентов (в текущем документе из первой коллекции) и запишите результат в текущий документ в виде отдельного поля. Помогите пожалуйста. у же часов 5 сижу думаю не могу понять как сделать
Ярослав
Влад
Коллеги, подскажите плиз. Как подключить mongodb(через докер) к проекту. Везде пишется про mongoos и как он используется для подключения к облачное mongodb. А как сделать чтобы к моей базе в докере?
Ярослав
$lookup для подтягивагия данных, $reduce для получения из массивов сумм всяких
Там не бы сам запрос, я то знаю какие команды для чего, но у меня не получается сам запрос написать
Влад
Напрямую, выставите порт базы наружу коетейнера (вроде через expose) и цепляйтесь сразу к нему. Монгус он про удобство работы
правильно я понимаю, что тут делать. Также мне нужно указать какая бд и какая коллекция. Но тут нет атрибутов для этого
Nikita
в чем собственно проблема? в счетчике количества игроков или в списке игроков находящемся в документе?
Nikita
тут не нужны транзакции совершенно
Nikita
$inc, $dec и $push в помощь 🙂
Dars
Так где-то в коде же происходит запись игрока в комнату. Вот там перед записью надо проверить не занята ли уже комната) Не понял вопроса
черничка ^^
Подскажите, если у меня есть, к примеру, универ и студенты. То куда мне записывать fk? Универу записывать id студентов? или студентам записывать id универа? Как выбрать
Дмитрий
Подскажите, если у меня есть, к примеру, универ и студенты. То куда мне записывать fk? Универу записывать id студентов? или студентам записывать id универа? Как выбрать
Надо понять, какой это тип связи. Один-к-одному, один-ко-многим или многие-ко-многим. Если студенты не могут учиться в двух вузах одновременно, то это один-ко-многим. Тогда у универа есть ID, а у студентов есть некоторый вшенший ключ на этот ID типа VUZ_ID
Дмитрий
Это вопрос нормализации данных. В теории можно и наоборот записать. Но получится, что у ВУЗа будут все поля повторяться строка к строке, и лишь ID студента различаться. А в случае, когда ID ВУЗа у студента, то все признаки студента собственные, и не повторяются в этой таблице. Повторяется лишь ID ВУЗа у них. Но это одной число, занимает минимум места.
Дмитрий
если смотреть с точки зрения студентов, то да. one to one
Нет, one-to-one - это когда в одном вузе может учиться лишь один студент, и один студент учится лишь в одном вузе.
Дмитрий
а почему там будут все поля повторяться? Я же просто запишу students: и список id.
Условная таблица Универы: ID Название Адрес Рейтинг Государственный/нет Студент Название, адрес, рейтинг, государственность будут повторяться строка за строкой, т.к. это признаки конкретного ВУЗа. Это дубликация данных.
Дмитрий
Так быть не должно.
черничка ^^
Условная таблица Универы: ID Название Адрес Рейтинг Государственный/нет Студент Название, адрес, рейтинг, государственность будут повторяться строка за строкой, т.к. это признаки конкретного ВУЗа. Это дубликация данных.
так ведь так и не будет. я ведь не буду на каждого студента делать отдельный универ с одинаковыми полями, а просто в один и тот же дописывать новых студентов
ViruSkin
наверно избитая тема но как искать рекурсивно id подвложенного документа, например это схема comment {id,text,comments[comment]}, искать надо по всей коллекции
Nikita
Мне кажется ты что то мудришь, задача супер тривиальная, не понимаю где можно там задумываться и транзакции втюхивать))
Nikita
Тебе нужно объединить два запроса в один, “update” и “find” просто одним запросом сделай и все, условие find можно закинуть в update
Nikita
Подсказка: “find” может содержать логический оператор and
Aʙduxᴀlilᴏv ☾
Здравствуйте. Учу только mongo db, и столкнулся с траблом. Я хочу добавить данные в туда где id будет равен id пользователя. Когда писал на sql была такая фишка INSERT INTO user WHERE id=user_id
Aʙduxᴀlilᴏv ☾
Aʙduxᴀlilᴏv ☾
Aʙduxᴀlilᴏv ☾
Добавляется отдельно
Aʙduxᴀlilᴏv ☾
update with upsert flag
collection.find( { item: "abc123" } ).upsert().replaceOne()?
Yoda
Лучше S3 совместимое объектное хранилище
Vlad
Запускаю js скрипт для монги: mongo ${MONGO_URI} script.js У меня в MONGO_URI есть param &appName=SomeName Если запустить с этим парамом - ошибка permission denied Если без него - скрипт отрабатывает Что может быть?
Vlad
mongodb://localhost:27017/dev?ssl=false&appName=xAPP Это локальный URI. Но на серваке та же ошибка
Vlad
Запускаю js скрипт для монги: mongo ${MONGO_URI} script.js У меня в MONGO_URI есть param &appName=SomeName Если запустить с этим парамом - ошибка permission denied Если без него - скрипт отрабатывает Что может быть?
Короче ещё потестил. Зависит от количетва параметров для Mongo_URI. Если 1(любой) работает, если больше - PERMISSION denied. Что за дичь?
Иван
Добрый день. Кто может подсказать, что будет если не закрывать iter? Т.е. i := dbQuery.Iter() for i.Next(&r) { //something } i.Close(); //not to do so. Будет повисать открытый сокет?
Anonymous
Добрый день. Кто может подсказать, что будет если не закрывать iter? Т.е. i := dbQuery.Iter() for i.Next(&r) { //something } i.Close(); //not to do so. Будет повисать открытый сокет?
По дефолту 10 минут таймаут курсора, но это относится к курсору в БД. Сокет - уровень ОС, обычно его прибивает keepalive.
Anonymous
Тем не менее практика забить на закрытие сокета\курсора порочна, не делайте так.
Иван
Тем не менее практика забить на закрытие сокета\курсора порочна, не делайте так.
Да, я понимаю. Нашёл офдоку, где курсор вроде как закрывается через 10 мин простоя. Но учитывая, что они могут волной открываться - плохая тенденция
Anonymous
Да, я понимаю. Нашёл офдоку, где курсор вроде как закрывается через 10 мин простоя. Но учитывая, что они могут волной открываться - плохая тенденция
Курсоры потребляют память в БД, это действительно стоит при принимать во внимание в вашем случае.
Yeeeeaaap
Народ тут такой вопрос. В реалиционной бд есть понятие миграция. В монге схожае есть? Мне бы просто название
Ivan
Всем привет, кто может проконсультировать по продвинутым кверям в монге?