Константин
типо
1,2,3?
await db.collection('roles').createIndex({ "description": "text" }, { default_language: "russian" });
это через createIndex(...), а вот как в схеме это указать ?
of Astora 𒉭
Константин
дефолтовое значение дать?
нет, в схеме при создании простого индекса, мы указываем index: true, а как указать, что это текстовый индекс ?
Dmitry
Ivan
Ну я не претендую на помидорку)) (знать бы что это ещё :) ) Просто если так посмотреть то почти ни один диплом не имеет делать смысла. Я видел темы своих одногруппников, у них так же всё банально, все эти темы уже давно разобраны по косточкам, т.е ничего нового мы не привнесем
Почему вас постоянно преследует эта мысль? Что-то новое и полезное, что не освещалось раньше или было плохо разобрано / изучено вы будете писать в кандидатской и докторской диссертации. В дипломах бакалавра/специалиста/магистра ничего нового ни для кого не будет. Это обычная работа, которую, скорее всего, делали до вас сотни тысяч людей. Это нормально. Просто возьмите тему, которая вам интересна, согласуйте ее со своим руководителем, пишите диплом и ни на кого не смотрите. Уникальность вашей работы будет изложена вашими мыслями. Разберитесь в проблеме и покажите, что вы в теме, в этом и будет ценность и смысл, в первую очередь для вас
Dmitry
Константин
Dmitry
Olga Tomakhina 💛
Привет!
Подскажите, пожалуйста, наверняка это простое что-то
В агрегации в результате lookup и project получаю поле в котором
{"name": "The Pivot Project"}
как сделать поле чтобы там показывалось "The Pivot Project" только? Пробую unwind - пока не вышло
Yaroslav
Olga Tomakhina 💛
Maksim
Привет, подскажите а если для mongodump / mongorestore ограничения в базе данных ?
Или можно дампить базу хоть в несколько Тб ?
Viktar
Maksim
Danil
Всем привет. Я не разработчик, но по работе пришлось столкнуть с mongoDB в Studio 3T. На специфическом языке mongoDB никогда не писал, но быстро осваиваюсь.
Вопрос в следующем:
У меня есть коллекция глубоко вложенных данных. Мне нужно сделать агрегацию по одному из «внутренних» параметров (3-4-5 уровнем ниже). Я понял, что нужно использовать метод $unwind и смог разложить первый уровень. А вот дальше не выходит.
Если кто-то может помочь советом, напишите в личку или здесь.
Делаю все во встроенном функционале Studio 3T
Viktar
Danil
Viktar
Danil
Если смотреть именно на данные со скрина, то нужно получить выделенное поле для всех accauntReplies по каждому response для каждого _id
Danil
Viktar
вы хотите сгруппировать по респонзу? или найти определённые документы?
Danil
Я понял, что это делается в несколько stage, но не уверен. На шаге 1:
{
path: "$creditHistory.credits",
}
У меня получилось разложить первый уровень
Danil
Kairat
коллеги помогите
Kairat
в чем проблема
Kairat
Kairat
с приклада
Kairat
а со студио 3т все нормально
Qahramon
Привет. Как дела? У нас проблема с MongoDb в prod. Mongo использует так много памяти, и его операций в диспетчере задач так много. Как мы можем решить эту проблему.
Dmytro
Коллеги, какие у вас будут методы решения задачи поиска постов по тегам в порядке уменьшения количества совпадающих?
Лично я например массив из пяти тегов (поисковых) превращаю сначала в несколько массивов из 4 тегов, затем в несколько из трёх, то есть постепенно убираю по тегу и создаю всевозможные комбинации а затем поочередно отправляю их запросами в монгу поиском через $all, но вот беда, для массива из 5 тегов существует аж 30 комбинаций тегов, и делать 30 запросов в базу это слишком долго
Может кто знает решение пошустрее?
(P.S. пост хранит в себе массив тегов в виде строк)
Yaroslav
Yaroslav
Dmytro
Dmytro
И вот среди таких постов надо чтобы по итогу я получил по фильтру tags: ["dev", "node", "js"] сначала пост как на схемe, затем когда закончатся посты с полным соответствием, чтобы выдало посты с совпадением например двух тегов "dev", "node", затем по двум тегам "dev", "js", и затем если уже и такие закончились, то по одному тегу совпадение, в общем мне кажется принцип понятен - чем меньше совпадений, тем дальше в выборке
Yaroslav
И вот среди таких постов надо чтобы по итогу я получил по фильтру tags: ["dev", "node", "js"] сначала пост как на схемe, затем когда закончатся посты с полным соответствием, чтобы выдало посты с совпадением например двух тегов "dev", "node", затем по двум тегам "dev", "js", и затем если уже и такие закончились, то по одному тегу совпадение, в общем мне кажется принцип понятен - чем меньше совпадений, тем дальше в выборке
Думаю такой вариант, db.collection.find(tags: { $in: [ array ] }).sort({ tags:1})
Dmytro
Dmytro
То есть там по идее не будет этой логики с уменьшением количества совпадения
Dmytro
Если я не ошибаюсь
Yaroslav
Но вполне может быть, что не удовлетворит твой кейс. Но имхо делать переборку значений массива и по каждой итерации делать запрос - не лучшее решение
Dmytro
Dmytro
Разве что делать выборку на условную тысячу постов через $in, и уже потом в них локально производить все эти фильтрации
Hello, easy way to install mongodb, use docker
Alexandrr
ttl index
Alexandrr
https://www.mongodb.com/docs/manual/core/index-ttl/
здесь всё подробно расписано
Alexandrr
я не знаю, что в контексте твоей реализации означает invoice_status = "not_paid"
да, чтоб запись не удалилась, нужно обновлять, удаляя ключ для которого создан индекс ttl
записи удаляются внутренним потоком, 1 раз в 60 секунд по дефолту
Рома
здравствуйте, никак не могу написать запрос, чтобы мне возвращались документы с определенным _id в массиве likes
Vladyslav
Влад
скажите плс, почему монго не сохраняет такую запись?
find.transitions++
find.dates[date].transitions++
await find.save()
первый инкремент он сохраняет, второй обновляет, но не сохраняет
Рома
здравствуйте, почему в первом случае, чтобы заработало я засунул передаваемую переменную в скобки, а во втором будет работать только без скобок
Рома
🅰️nimeCoder
вообще по идее правильно как на втором фото
однако не исключено что и первое прокатило, то так по идее нужно делать только когда идут дополнительные модификаторы
🅰️nimeCoder
db.students.updateOne(
{ name: "joe" },
{ $push: { scores: { $each: [ 90, 92, 85 ] } } }
)
🅰️nimeCoder
https://www.mongodb.com/docs/manual/reference/operator/update/push/
🅰️nimeCoder
Судя по коду используется mongoose, возможно магия под капотом сыграла роль
Inline ®
Добрый вечере. Такая ситуация когда в базе уже есть указаный mnemonic срабатывает if ниже, а когда в базе есть такая почта но нету mnemonic, то он не срабатывает
Inline ®
Как это решить
Inline ®
как вариант можно
if (candidate.mnemonic === mnemonic || candidate.email === email) return
Inline ®
но может есть более гуманный способ
Alex
Alex
Alex
Alex
Dmytro
Здравствуйте, как можно в аггрегации получить индекс документа в потоке?
(Или какие ещё есть способы скипнуть документы включительно до документа с нужным айди если они стоят не по порядку)
Nick
Константин
всем привет, как через aggregate -> $lookup получить данные по ObjectId из массива users?
если поле с ObjectId не массив, то коллекцию получаю, а как с массивом делать не понимаю
Maxmudjon
Константин
также
всегда возвращается только один ObjectId, а должно быть 2
endlessNight
Всем привет. У меня есть несколько одинаковых записей. Какую запись мне вернет findOne? последнюю или первую?
Константин
вопрос снят )) перепутал поля по связям