endlessNight
Я надеюсь вопрос в этом?)
Константин
Я надеюсь вопрос в этом?)
нет, когда поле создаешь, указываешь сортировку (1 vs -1) в зависимости от сортировки, find ищет, соответственно что вперед то и придет, если сортировки нет, то получишь как попало результаты
Влад
Всем привет, Подскажите пожалуйста метод агрегации в монге как из такого [ {title1: 3}, {title2: 2}, {title3: 1} ] сделать такое { title1: 3, title2: 2, title3: 1 }
Vladyslav
Всем привет, Подскажите пожалуйста метод агрегации в монге как из такого [ {title1: 3}, {title2: 2}, {title3: 1} ] сделать такое { title1: 3, title2: 2, title3: 1 }
вы уверены что именно это вам нужно? тут вы просто массив превращает в объект. Не знаю есть ли такое вообще, но наближено есть оператор unwind, но он каждый элемент массива кинет как отдельный объект.(а не 1 объект и в нем все эл массива как объекты). Пересмотрите еще раз ваши требования\задачу
Vladyslav
да, задача стоит такая вернуть один объект, сделал через JS так в favorites лежит массив который выше скидывал return Object.assign(...favorites) интересно было как через mongo можно так сделать
aggregate( [{"$project":{ "ARRAY_NAME":{ "$reduce":{ "input":"$ARRAY_NAME", "initialValue":{}, "in":{"$mergeObjects":["$$value","$$this"] } } } }}] ) вроде решит такую задачу. Но вариант с object.assign уже на беке выглядит проще)
Nikita 🏃🦠
Ребят есть коллекция документов с массивом-свойством currencies: «moneyTransfer.currencies[]», внутри лежат строки EUR, USD, CNY и т.д. Хочу сделать запрос который найдет документы у которых в массиве moneyTransfer.currencies[] находится нужный список валют. Как это можно сделать?
Nikita 🏃🦠
Пример данных: { _id: “XXXXXX” moneyTransfer: { currencies: [“USD”, “EUR”, “CNY”] } }, { _id: “XXXXXX” moneyTransfer: { currencies: [“USD”, “EUR”] } } пытаюсь придумать запрос который найдет документы в которых есть одновременно CNY и EUR
Dmitry
Не факт что сработает т.к. не помню уже точно как там and писать надо
Nikita 🏃🦠
{$and: [{"money.cur": "EUR"}, {... : "USD"}]}
интересный вариант, но вот думаю может что-то возможно сделать одним оператором вроде $in
Dmitry
in проверит единичное вхождение
Nikita 🏃🦠
вот да, а есть ли подобные операторы которые проверят все вхождения?
Nikita 🏃🦠
оо вот https://www.mongodb.com/docs/manual/reference/operator/query/all/
джигит иван
Всем привет! Такой вопрос. Я в прогерстве не силен. Сделал бота в телеге. В этом боте люди бронируют места на различные мероприятия в одном заведении. Вопрос: могу ли я как то установить лимит по броням как эти разные мероприятия? Чтобы там условно не забронило 200 человек хотя мест 50) Заранее спасибо!
Dmitry
При создание
Dmitry
Но это не факт, что вам поможет т.к. разные ситуации могут быть
Emil22878
Ребята, не пойму почему у меня user не выводится ? вроде связь указал по итогу в postedBy просто id выводится а не фулл юзер
Emil22878
Emil22878
Emil22878
указывать надо название поля, у вас postedBy
извините но не понял( тут я указаываю связь а потом передаю id от req , что мне нужно поменять?
Emil22878
в populate() параметр
вместо user поменять нужно ?
Nick
да
Emil22878
ошибка теперь какая то
Emil22878
а все, пасиба))
Konstantin
привет всем подскажите, что делать. у меня в сутки + 100-150к документов добавляется. проблема в том, что они дублируются, я не знаю уже что делать… хоть я и добавил: uid: { unique: true, type: Number, }, все равно документы дублируются…
Konstantin
вот таким образом происходит добавление нового документа в бд
Konstantin
хочу отметить, что проблемы с дубликатами начинаются когда реквестов более 200к и приходится их удалять все, чтобы не спамило в консоль ошибками
Emil22878
гайс а как получить все комментарии допустим в модели?
Emil22878
Konstantin
сейчас провожу стресс тест, все отлично — дубликатов пока 0.
Dmytro
Здравствуйте, а как в аггрегации в этап $sort поместить limit? Никак не могу найти примера
Dmytro
В документации нашел только вариант с sortKey, но монга ругается на такое
Андрей
db.article.aggregate([ { $sort: / code / }, { $limit: 5 } ]);
Андрей
отдельно попробуй
Dmytro
отдельно попробуй
Так отдельно работает, просто увидел в их рекомендациях по оптимизации совмещение этих полей
Dmytro
гайс а как получить все комментарии допустим в модели?
Ну типа find(), а если нужны только комменты, то find({}, "comments")
Emil22878
гайс у меня есть функция на удаление коммента по id есть ли возможность вернуть клиенту удаленный комментарий ?
of Astora 𒉭
правда может такая себе мысль
Viktar
подскажите, как в монге сделать выборку значений по полю (поле содержит числа), которые начинаются с цифры 1. В результате должно вывести, 1,12, 17,102, 10400
Dmytro
Тогда с помощью аггрегации сначала превратить их в строки
Dmytro
Тогда плакать
Dmytro
И хранить в строках
Ivan
можно вернуть комментарий перед удалением, а потом удалить
Зачем? Mongo же возвращает удаленный документ
Dmytro
Зачем? Mongo же возвращает удаленный документ
Так он же удаляет из массива в документе
Ivan
Так он же удаляет из массива в документе
да, действительно. невнимательно прочитал, прошу прощения
Dmytro
да, действительно. невнимательно прочитал, прошу прощения
Та я сам сначала хотел сказать что все по дефолту и так работает, но потом глянул код :)
yopp
По крайней мере так планировщик скорее всего будет индексы использовать. Иначе в десятичной системе напрямую никак
Viktar
Если хранится как число, то проще сделать условия на каждый диапазон: $gte: 1 $lte 9 and $gte: 10 $lte: 19 итд
Смысл в том, что это автодополнение. Пока не решил проблему, но скорее всего буду переконвертировать в строку.
Alexandrr
А regex?
я же ответил выше
Viktar
А regex?
Регексп не работает с числами
Vladyslav
Регексп не работает с числами
Через $where есть вариант или я что-то не знаю?
Viktar
Через $where есть вариант или я что-то не знаю?
Да. Можно и так. Но тогда надо функция. Которая по сути будет приводить к строке. И там регуляркой искать.
Viktar
Вы о test?
Да. Можно и другую написать на js. Но принцип тот же. Проще сделать доп поле, где число будет храниться строкой. Покрайне мере в моем кейсе
Emil22878
с чем связана ошибка ?
Emil22878
и почему не могу добавить new Date
Alex
и почему не могу добавить new Date
нет такого типа данных как new Date()
Emil22878
нет такого типа данных как new Date()
а как можно добавить текущую дату например? при создании
Alex
created: {type:String, default : new Date()} хотя не уверен, никогда так не делал ))