Joe
А не подскажите как строиться URL базы данных?
В доке есть но примерно так: mongodb://localhost:28017/DB_NAME
Alexandr
Ребят, только начал разбираться с монго.Дали задание.Хэлп плиз) База данных MongoDB содержит коллекции: posts - Записи - { "properties": { "_id": { "bsonType": "objectId" }, "title": { "bsonType": "string" }, "content": { "bsonType": "string" }, "author": { "bsonType": "string" }, "like": { "bsonType": "int" }, "dislike": { "bsonType": "int" } } } Все команды вы выполняете в mongo shell Задание Напишите команды для получения следующих значений: Выведите 5 записей из коллекции posts пропустив первые 5 Выведите все записи у которых like больше 100 Добавьте новую запись в коллекцию posts Выведите список авторов и их общее количество like Это вообще не сложное задание? Можно за пару часов разобраться?
Denis
Ребят, только начал разбираться с монго.Дали задание.Хэлп плиз) База данных MongoDB содержит коллекции: posts - Записи - { "properties": { "_id": { "bsonType": "objectId" }, "title": { "bsonType": "string" }, "content": { "bsonType": "string" }, "author": { "bsonType": "string" }, "like": { "bsonType": "int" }, "dislike": { "bsonType": "int" } } } Все команды вы выполняете в mongo shell Задание Напишите команды для получения следующих значений: Выведите 5 записей из коллекции posts пропустив первые 5 Выведите все записи у которых like больше 100 Добавьте новую запись в коллекцию posts Выведите список авторов и их общее количество like Это вообще не сложное задание? Можно за пару часов разобраться?
Очень простое задание. В последнем пункте потребуется агрегация
Alexandr
Очень простое задание. В последнем пункте потребуется агрегация
Спасибо, подскажите пожалуйста, что лучше почитать или посмотреть чтобы выполнить задание?(с инглишем я не очень дружу)
Joe
А монга то включена? С консоли в монгу достучиться удается?
The end.
Консоль открыта
The end.
Joe
Сорян, проебавса. 27017
The end.
Denis
Спасибо, подскажите пожалуйста, что лучше почитать или посмотреть чтобы выполнить задание?(с инглишем я не очень дружу)
Тебе задания выполнить или монгу выучить? Если первое, гугли пункты поочередно на англ - наткнешься на решение на Stack Ovf. Если второе - у монги прекрасная дока на оф сайте на англ Без англ в разработке примерно никак
Maksim
допустим в моей модели есть slug - уникальный строковой идентификатор. Я могу безопасно отказаться от _id и использовать только slug? пока наткнулся на то что вытаскивать эту модель по slug с помощью .populate() не получается. Это можно как-то обойти, или всегда придется использовать aggregate? может вместо использования поля slug следует переопределить _id как string?
Марциновский
Ребят хай не шарите, чего при таком вызове пишет, что unknown operator: $or.
Марциновский
Его нельзя так юзать?
orthodox
Привет, как при такой структуре документов можно найти название города по ID?
Anonymous
Привет, как при такой структуре документов можно найти название города по ID?
Если библиотека mongoose, то <collection>.find({ name: "France" })
Alexandr
ребят помогите плз, у меня есть список колекций такого типа: { author: 'Bhargava', like: 153, } Задача: Выведите список авторов и их общее количество like я делаю так db.posts.distinct('author') db.posts.aggregate([ {$group :{ _id : "authors", total_likes: { $sum : "$like" }}} ]) Получаю // [Массив авторов] // { _id: 'authors', total_likes: 1627 } Можно ли как-то реализовать все в одну строчку?
Алексей
Привет, столкнулся с проблемой, установил все как указано на сайте монго, но на выходе получаю это. Сервис при этом работает.
Alexandr
https://docs.mongodb.com/manual/reference/operator/aggregation/facet/
Спасибо конечно, но я всего час изучаю монгу) Половину не понял, а есть какие-то способы попроще? Или скажите пожалуйста как выглядит решение, чтоб я потом сам разобрался. В любом случае спасибо большое за помощь
Alexandr
тогда сдается мне что идет переусложнение, "их общее количество" иется ввиду с разбивкой по авторам или же количество лайков вообще?
я решаю начальные задачки) Выведите 5 записей из коллекции posts пропустив первые 5 Выведите все записи у которых like больше 100 Добавьте новую запись в коллекцию posts Выведите список авторов и их общее количество like Все решил, а последнюю не могу одной командой вывести
Nick
Общее количество лайков вообще
тогда да фасеты. вам надо сдлеать две агрегации: 1) список авторов - обычная группировка по полю авторая вместо дистинкта, который у вас 2) общее число - так же как вы уже сделали через суммирование теперь эти две агреции просто заносите согласно примеру под фасет $facet:{ authors:[ $group:{ _id: "$author" } ], totalLikes:[ $group:{ _id: null, sum: {$sum: "$like"} } ] }
Nick
потом при необходимости через $project выносите на уровень выше количество лайков
Nick
да
Alexandr
пока что не работает))
Nick
гляньте пример по ссылке выше из доки по точной конструкции
Vladimir
Привет Подскажите пожалуйста как накатить локально дамп из атласа, архив tar.gz с wt файлами
Марциновский
Timur
Всем привет! Подскажите пожалуйста, есть single нода mongodb, боевая. Как можно подцепить слейв без downtime сервиса, из слейва в последствии хочу создать replicaset, просто сам слейв находиться в другом дата центре.
Марциновский
$or
щас притиер отключу
Марциновский
а то не дает😂
Марциновский
неа
Марциновский
не работает
Марциновский
Надо чтоб одно из значений reminders было true, нету других вариантов решения?
orthodox
А если так?
Марциновский
Не, не воспринимает оператор or внутри reminders
Марциновский
все еще
orthodox
Maksim
имеет ли смысл каждое потенциально-уникальное поле помечать как { unique: true }, тем самым создавать индекс по этому полю? например поле thumbnail_url
Timur
Небольшой даунтайм в любом случае будет, так как вам потребуется перезапустить существующую ноду в режиме репликасета
подскажите как правильно и полноценно перенести данные со standalone ноды в одном дата центре, в репликасет в другом данацентре?
Alexandr
потом при необходимости через $project выносите на уровень выше количество лайков
получилось)) только пока с проджектом не сталкивался { $project: : { _id: 0, author : 1 } } Мне нужно будет что-то такое написать? не очень понял как лайки вынести выше)
yopp
подскажите как правильно и полноценно перенести данные со standalone ноды в одном дата центре, в репликасет в другом данацентре?
Данные переносить не нужно, потребуется изменить конфигурацию существующей ноды и позже добавить секондари Вот плейбук: https://docs.mongodb.com/manual/tutorial/convert-standalone-to-replica-set/
Timur
я планировал создать репликасет, где мастером будет выступать существующая нода, после того как слейвы догонят все данные, просто исключить старую ноду из кластера. это рабочий вариант?
Timur
я просто не понимаю механизм выбора мастера, не получиться ли так, что мастером станет новая пустая нода и данные потеряются?
orthodox
find($or: [{reminders: {reminder1: true}}, reminders: {reminder2: true}}, reminders: {reminder2: true}}]) а так?
Timur
yopp
да
Sergey
Добры день. Есть запрос к Бд. .find({ to: userId, }) .populate({ path: "from", select: "first_name last_name display_name ", }) .lean() .sort({ created_at: -1 }) .exec(); По сути там связь один к одному. Можно ли сделать так( без ls) чтобы поля first_name last_name display_name были включены в результат не объектом, а на том же уровне что и все, т.е. получился бы плоский объект без вложенности.
Timur
И ещё вопросик, приложение которое сейчас работает только с одной нодой, сможет дальше работать с ней, после конвертирования в репликасет?
yopp
да, для клиентов это прозрачно
yopp
единственное что потребуется — изменить строку подключения
Nick
Добры день. Есть запрос к Бд. .find({ to: userId, }) .populate({ path: "from", select: "first_name last_name display_name ", }) .lean() .sort({ created_at: -1 }) .exec(); По сути там связь один к одному. Можно ли сделать так( без ls) чтобы поля first_name last_name display_name были включены в результат не объектом, а на том же уровне что и все, т.е. получился бы плоский объект без вложенности.
судя по всему у вас монгус, он при популейте формирует массив согласно вашей модели и получить чтото другое стандартно не получится. Возможно тут есть какието хаки мидлами есть (pre/post), но это изврат и вам всеравно придется трансформировать, поэтому прост сделайте мап после получения данных и сформируйте объекты с нужной вам структурой
Sergey
Спасибо
Dmitriy
Скажите пожалуйста, я могу каким то образом применить фильтр для элементов массива в документе? Скажем у меня есть массив tickets и я хочу сделать что то типо пагинации по этому массиву, что бы я мог вытащить весь документ и последние 10 элементов массива?
Dmitriy
{ user: 123, tickets: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] } Запрос -> результат: { user: 123, tickets: [1,2,3,4,5,6,7,8,9,10] }
Nick
{ user: 123, tickets: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] } Запрос -> результат: { user: 123, tickets: [1,2,3,4,5,6,7,8,9,10] }
посмотрите на https://docs.mongodb.com/manual/reference/operator/projection/slice/ думаю подойдет
Dmitriy
ооо супер! большое спасибо!
Ilya
вакансии конкретно по монге? интересно
Марциновский
Вот решение
Шох
Добрый день ребята, у меня вот такая структура данных. Оказывается у монго есть ограничение на 16мб для документов Коллекций. Правильно ли я понимаю в моем случае ограничение для вложение 1/2/3....23 внутри hours? а для items будут ли такие ограничении?
Maksym
Здравствуйте! Есть такой вопрос. Нужно отсортировать массив, по значению ключа объекта вложенного в массив, который вложен в главный массив. Структура такая. Я не знаю, можно ли кидать несколько сообщений подряд, поэтому пока что остановлю на этом. Я пытаюсь сделать это с помощью aggregate и $sort, но почему-то не получается пробиться к ключу объекта массива stats. Что интересно, по name - сортирует. Есть какие-то мысли, господа?( Уже не знаю как и пробовать