Константин
типо 1,2,3?
await db.collection('roles').createIndex({ "description": "text" }, { default_language: "russian" }); это через createIndex(...), а вот как в схеме это указать ?
Константин
дефолтовое значение дать?
нет, в схеме при создании простого индекса, мы указываем index: true, а как указать, что это текстовый индекс ?
Ivan
Ну я не претендую на помидорку)) (знать бы что это ещё :) ) Просто если так посмотреть то почти ни один диплом не имеет делать смысла. Я видел темы своих одногруппников, у них так же всё банально, все эти темы уже давно разобраны по косточкам, т.е ничего нового мы не привнесем
Почему вас постоянно преследует эта мысль? Что-то новое и полезное, что не освещалось раньше или было плохо разобрано / изучено вы будете писать в кандидатской и докторской диссертации. В дипломах бакалавра/специалиста/магистра ничего нового ни для кого не будет. Это обычная работа, которую, скорее всего, делали до вас сотни тысяч людей. Это нормально. Просто возьмите тему, которая вам интересна, согласуйте ее со своим руководителем, пишите диплом и ни на кого не смотрите. Уникальность вашей работы будет изложена вашими мыслями. Разберитесь в проблеме и покажите, что вы в теме, в этом и будет ценность и смысл, в первую очередь для вас
Константин
Schema.index( и тут инфа о индекс)
т.е. в полях схемы не указываем, указываем отдельным методом Schema в листинге где сама схема ?
Константин
Это на Nest, но смысл не меняется
мне как раз на Nest и нужно ))
Константин
Это на Nest, но смысл не меняется
посмотри, так правильно будет или в @Prop убрать еще type ?
Alexandrr
await db.collection('roles').createIndex({ "description": "text" }, { default_language: "russian" }); это через createIndex(...), а вот как в схеме это указать ?
тоже ебался с этим в pymongo, нет норм пояснений. я создаю его так: .get_collection('name_collection').create_index([('n', 'text')]) язык не указывал, и норм ищет, что ру, что англ слова, что любого другого языка
Olga Tomakhina 💛
Привет! Подскажите, пожалуйста, наверняка это простое что-то В агрегации в результате lookup и project получаю поле в котором {"name": "The Pivot Project"} как сделать поле чтобы там показывалось "The Pivot Project" только? Пробую unwind - пока не вышло
Maksim
Привет, подскажите а если для mongodump / mongorestore ограничения в базе данных ? Или можно дампить базу хоть в несколько Тб ?
Maksim
Можно дарить в несколько терабайт. Я дампил 40тб. Долго, но без проблем.
Спс А дампить через сеть можно, сразу на удаленных хост с жатием? Пока не вышло найти
Viktar
Спс А дампить через сеть можно, сразу на удаленных хост с жатием? Пока не вышло найти
я дампил на с3, подключил его как директорию на сервере. точно так же вы можете сдампить на сетевой диск
Danil
Всем привет. Я не разработчик, но по работе пришлось столкнуть с mongoDB в Studio 3T. На специфическом языке mongoDB никогда не писал, но быстро осваиваюсь. Вопрос в следующем: У меня есть коллекция глубоко вложенных данных. Мне нужно сделать агрегацию по одному из «внутренних» параметров (3-4-5 уровнем ниже). Я понял, что нужно использовать метод $unwind и смог разложить первый уровень. А вот дальше не выходит. Если кто-то может помочь советом, напишите в личку или здесь. Делаю все во встроенном функционале Studio 3T
Viktar
У меня мне кажется и есть вложенный массив
хорошо, а что в итоге надо получить?
Danil
Если смотреть именно на данные со скрина, то нужно получить выделенное поле для всех accauntReplies по каждому response для каждого _id
Danil
Viktar
вы хотите сгруппировать по респонзу? или найти определённые документы?
Danil
Я понял, что это делается в несколько stage, но не уверен. На шаге 1: { path: "$creditHistory.credits", } У меня получилось разложить первый уровень
Danil
вы хотите сгруппировать по респонзу? или найти определённые документы?
Я хочу получить плоскую таблицу, где будет поле ownerIndicText и его значения
Viktar
Я хочу получить плоскую таблицу, где будет поле ownerIndicText и его значения
попробуйте unwind что бы развернуть нужный вам массив, потом objectToArrayчто бы избавиться от 0,1,2 неу а потом project что бы сформировать нужный вам формат. я с телефона, мне сложно написать вам запрос, руки мёрзнут. если не получится, то завтра напишите мне в личку
Kairat
коллеги помогите
Kairat
в чем проблема
Kairat
Kairat
с приклада
Kairat
а со студио 3т все нормально
Qahramon
Привет. Как дела? У нас проблема с MongoDb в prod. Mongo использует так много памяти, и его операций в диспетчере задач так много. Как мы можем решить эту проблему.
Dmytro
Коллеги, какие у вас будут методы решения задачи поиска постов по тегам в порядке уменьшения количества совпадающих? Лично я например массив из пяти тегов (поисковых) превращаю сначала в несколько массивов из 4 тегов, затем в несколько из трёх, то есть постепенно убираю по тегу и создаю всевозможные комбинации а затем поочередно отправляю их запросами в монгу поиском через $all, но вот беда, для массива из 5 тегов существует аж 30 комбинаций тегов, и делать 30 запросов в базу это слишком долго Может кто знает решение пошустрее? (P.S. пост хранит в себе массив тегов в виде строк)
Yaroslav
Привет. Как дела? У нас проблема с MongoDb в prod. Mongo использует так много памяти, и его операций в диспетчере задач так много. Как мы можем решить эту проблему.
У studio3t есть сайт, на сайте полно подробных статей описывающих подробный процесс поиска и устранения проблем с монгой
Dmytro
И вот среди таких постов надо чтобы по итогу я получил по фильтру tags: ["dev", "node", "js"] сначала пост как на схемe, затем когда закончатся посты с полным соответствием, чтобы выдало посты с совпадением например двух тегов "dev", "node", затем по двум тегам "dev", "js", и затем если уже и такие закончились, то по одному тегу совпадение, в общем мне кажется принцип понятен - чем меньше совпадений, тем дальше в выборке
Dmytro
Думаю такой вариант, db.collection.find(tags: { $in: [ array ] }).sort({ tags:1})
Так оно же вернёт просто посты где есть хоть один совпадающий тег
Dmytro
То есть там по идее не будет этой логики с уменьшением количества совпадения
Dmytro
Если я не ошибаюсь
Yaroslav
Так оно же вернёт просто посты где есть хоть один совпадающий тег
Да ты правильно думаешь. Но тут скорее всего отработает корректно, по крайней мере в доке не сказано, другого. Тут описано как монга сравнивает по массиву https://www.mongodb.com/docs/manual/reference/bson-type-comparison-order/#arrays
Yaroslav
Но вполне может быть, что не удовлетворит твой кейс. Но имхо делать переборку значений массива и по каждой итерации делать запрос - не лучшее решение
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
Рома
запрос?
я уже нашел решение
Влад
скажите плс, почему монго не сохраняет такую запись? 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
findOne({$or : [{mnemonic},{email}] })
хотя вроде не то ты спрашиваешь ((
Inline ®
хотя вроде не то ты спрашиваешь ((
Ну спасибо попробую, мне короче нужно типа жёсткой проверки, либо есть почта и мнемоник, либо нету ничего
Inline ®
Ну спасибо попробую, мне короче нужно типа жёсткой проверки, либо есть почта и мнемоник, либо нету ничего
Или чтобы если хоть по чём-то нашло то выводило результат. Например по мнемоник совпадений нет, а по почте есть, значит выводим документ пользователя
Dmytro
Здравствуйте, как можно в аггрегации получить индекс документа в потоке? (Или какие ещё есть способы скипнуть документы включительно до документа с нужным айди если они стоят не по порядку)
Константин
всем привет, как через aggregate -> $lookup получить данные по ObjectId из массива users? если поле с ObjectId не массив, то коллекцию получаю, а как с массивом делать не понимаю
Константин
также
всегда возвращается только один ObjectId, а должно быть 2
endlessNight
Всем привет. У меня есть несколько одинаковых записей. Какую запись мне вернет findOne? последнюю или первую?
Константин
вопрос снят )) перепутал поля по связям