Slava
$elementMatch вроде
Ага, elemMatch
Slava
Спс
Anonymous
Ребята, как организовать 2 таблицы: - Категории - Запись каждая запись попадает под 1 или более категорий при этом имея категорию я должен сразу знать список записей из этой категории category: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Category' }],
Anonymous
типа так хранить? и при этом если я удалю категорию - вручную проверять все записи?
Dmitry
Ребята, как организовать 2 таблицы: - Категории - Запись каждая запись попадает под 1 или более категорий при этом имея категорию я должен сразу знать список записей из этой категории category: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Category' }],
Те данные, которые выводятся вместе и часто, лучше хранить вместе. И искать по категориям будет проще. Например, Одна collection У документа 2 поля record: srting. и category:array
Anonymous
Добрый день, кто с mongoose в ноде работал?
Anonymous
Как чекнуть, есть в коллекции документ с такими то параметрами, и if подходит то перебрать в этом документе обьекты которые нужно
Anonymous
определённо нужен плагин для jQuery
Anonymous
благодарю
Josh
помогите составить запрос к { arr: [{ value, ts }] } чтобы находился ближайший по ts (время), который меньше последнего элемента, ну и возвращалась пара объектов {value, ts} (искомый и последний) одним запросом бы решить
Никита
И вуаля
Josh
и будет последний один элемент, ого, не вуаля
Никита
и будет последний один элемент, ого, не вуаля
Плохо вчитался в вопрос Если правильно понял, то надо и последний и предпоследний элемент? Внутри arr если могут быть таких два варианта, то первое, что пришло в голову - делать аггрегацию с unwind самого arr
Josh
последний и предпоследний с условиями
Никита
То есть было: { foo: bar, arr: [{ts: 1, bar: a},{ts:2, bar: b}]} Станет [{ foo: bar, arr: {ts:1, bar: a}}, {foo: bar, arr: {ts:2, bar: b}}]
Никита
анвинда мало
Ну aggregation pipeline может содержать в себе много шагов
Josh
Ну aggregation pipeline может содержать в себе много шагов
🌝 вот про следующие шаги и спрашиваю, а то что это агрегация ёжику панятн )
Josh
задачка кажется легкой, да хрен там, ну а гугол конечно не нагуглит такое
Josh
формально, найти ближайший по времени отчет с меньшим значением от последнего
Yehor
Does anyone use MongoDB as a database for real-time trading, i.e. for crypto/fiat -currency exchange?
Denis
@dd_bb
Anonymous
Добрый день, заметил что если в в названии коллекции есть символ "-", то появляется ошибка ReferenceError каким образом это дело можно экранировать например user-info
Anonymous
сам ответил на свой вопрос db.getCollection("user-info")
Anonymous
db['user-info']
Anonymous
Добрый день, кто может подсобить набросать query для FindOne Примерно следующая структура: { "source":"kruzhka", "item_id":"12345", "descriptions: [ "asdf1", "asdf2", "asdf3", ] } каким образом можно составить query: найти элемент, где source=kruzhka и item_id=12345 и в массиве description есть значение asdf3
Anonymous
в общем, взял операторы $elemMatch и $eq
Denis
в общем, взял операторы $elemMatch и $eq
Зачем. Дали же нормальный запрос выше
Ilya
Доброй ночи. Есть ли какие-то гайды, программы, сервисы для построения схемы базы для монги (и вообще для документно ориентированных субд)? Пытался построить er диаграмму, и встал в ступор, столкнувшись с проблемой обозначения массивов (и особенно массивов обьектов)
Aleksandr
Я за годы проб и ошибок пришел к выводу что er-диаграммы в качестве исходников не годятся, код из них не сгенеришь, история изменений в гит или не видно или видно плохо
Aleksandr
Лишняя работа тока
Bulat
Добрый день! Столкнулся с такой проблемой: Выполняю из node.js запрос find() с оператором $where, в котором передается большая функция. Монга не возвращает ни одного результата, в монгошелле тот же запрос выполняется и возвращает нужные данные. Погуглил на тему различных ограничений в драйвере, ничего подходящего не нашел. В чем может быть проблема и что можно с этим сделать? P.S. в некоторых случаях функция, вызванная из ноды, возвращает результат, пока еще не разобрался, почему. P.P.S. глобальные функции/свойства функция не вызывает (https://docs.mongodb.com/manual/reference/operator/query/where/)
Aleksandr
А вообще вы в ноде результаты получать можете? Без where этого
Bulat
Да, могу
Bulat
вот этот запрос { 'routes.stop.code': {$in: ["2038230"]}, $where: `function() { return true; }` } выдает результат
Bulat
разобрался - я ошибочно выделил $where в отдельный объект
Aleksandr
разобрался - я ошибочно выделил $where в отдельный объект
можете пример показать? интересно посмотреть как оно там бывает, я сам никогда не использовал функции в запросах из ноды
PAS
Всем привет. Как решить проблему ограничений в 100 условия при запросе?
Никита
Всем привет. Как решить проблему ограничений в 100 условия при запросе?
А вообще как так вышло что у тебя 100 условий при запросе?)
RapidCodeLab
Вангуйте)
Никита
Да это скорее всего gui у него
Мб он отсеивает что-то, но не знает про $in/$nin
PAS
А вообще как так вышло что у тебя 100 условий при запросе?)
Пользователи делают такие запросы с более чем 100 условий выборки по критериям "ИЛИ"
Никита
Пользователи делают такие запросы с более чем 100 условий выборки по критериям "ИЛИ"
Тогда аггрегация, каждый из шагов - нужное количество ограничений
Ilya
Я за годы проб и ошибок пришел к выводу что er-диаграммы в качестве исходников не годятся, код из них не сгенеришь, история изменений в гит или не видно или видно плохо
Не, просто у меня коллекций много, документы большие, связанные друг с другом, поэтому мне нужна er диаграмма исключительно для того, чтобы в любой момент иметь перед глазами всю картину базы целиком, и не путаться, где что находится. Пусть это будет даже не именно er диаграмма, а просто схема, но визуальное представление проекта иметь очень полезно, как мне кажется. НО вся проблема в том, что я хз, как запилить такую схему для документноориентированной базы, с массивами, вложенными доками и.т.п. Пробовал отрисовать схему в draw.io, получилась какая то хрень, если честно)
Aleksandr
о чем и речь, нужно нормальное текстовое описание модели
Aleksandr
средсвами монгуз например
Ilya
ага, мангуст я использую
Aleksandr
или нужно чтобы диаграма генерилась по коду автоматом, или нужно следить за тем чтобы в диаграме и в коде отражалось одно и то же
Ilya
а разве есть сервисы, куда можно загрузить схемы мангуста и получить диаграмму?
Aleksandr
сомневаюсь, поэтому и пишу что от мечты о диаграммах лучше отказаться
Ilya
печально, однако
Aleksandr
привыкаешь быстро и потом на диаграмы с презрением смотришь :)
Ilya
ну хз хз, я припоминаю, как в универе мы смеялись, нахрена нужны эти бессмысленные блок схемы, пережиток 19 века, а потом я решил описать процессы в бэке с помощью блок схем, и получилось очень хорошо, наглядно)) вот если придет новичок, он в коде подолгу копаться не будет, откроет блок-схему, разберется, и сразу будет понимать, что происходит да я и сам иногда, когда забываю, где и что у меня происходит, открываю эти схемы и сразу все вспоминается
Ilya
привыкаешь быстро и потом на диаграмы с презрением смотришь :)
я просто прочитал материал медузы, в которой они рассказывали, как у них все устроено, и подумал, что выглядит это неплохо
Артем
я просто прочитал материал медузы, в которой они рассказывали, как у них все устроено, и подумал, что выглядит это неплохо
только они юзают опен сорс решение походу для документации books, в нем draw встроенный.... поэтому очень удобно)
Dmitry
а разве есть сервисы, куда можно загрузить схемы мангуста и получить диаграмму?
Можно прямо из базы данных схемы рисовать. По ссылке хороший пример как collection в er описать
Dmitry
https://www.dbschema.com/mongodb-tool.html
Adilet
Всем привет, ребят, я первый раз трогаю mongodb. Мне нужно написать фильтр для вложенного json, как бы я делаю .find({'my.nested.*.json': 'my_string'})
Adilet
вот где звездочка, там может быть что угодно
Adilet
можете пожалуйста подсказать, можно ли вообще такой фильтр написать
Adilet
и если да, то как реализовать такой запрос
Dmitriy
Всем привет, ребят, я первый раз трогаю mongodb. Мне нужно написать фильтр для вложенного json, как бы я делаю .find({'my.nested.*.json': 'my_string'})
А приведите, пожалуйста, пример вашего документа? Если у вас звёздочка обозначает элемент объекта, то такой поиск на сколько я знаю не возможен, если массив, то возможны варианты. А вообще хорошо посмотреть на документ и может быть преобразовать его для удобства поиска
Adilet
{u'model_id': u'1200', u'segments': {u'lav3_12000': {u'size': 420600.0, u'retargeting_stats': {u'retargeting_count': 1022, u'retargeting_ratio': 0.48140900195694714}, u'accumulation_stats': {}, u'top_affinity_sites': {u'affinities': [172.85943191935377, 138.04913441414786, 133.0460206610808, 125.65566172648633, 110.4813958502741, 88.35752743553807, 58.107062410430316, 56.920992438089264, 56.24430012263183, 52.42702956147248], u'sites': [u'7ya-ru.cdn.ampproject.org', u'conf-7ya-ru.cdn.ampproject.org', u'razvitie-krohi.ru', u'imom.me', u'malyshi.livejournal.com', u'parents.ru', u'subsidii.net', u'materinstvo.ru', u'namedb.ru', u'woman-rambler-ru.cdn.ampproject.org']}}, u'lav3_12001': {u'size': 1689800.0, u'retargeting_stats': {u'retargeting_count': 1022, u'retargeting_ratio': 0.22602739726027396}, u'accumulation_stats': {}, u'top_affinity_sites': {u'affinities': [36.901041540552484, 29.68123024427689, 29.59108331984636, 28.602914177043207, 27.573901084387167, 26.233731014129486, 25.46004520231479, 22.570672797050104, 21.763492993493404, 21.561933262093625], u'sites': [u'conf-7ya-ru.cdn.ampproject.org', u'razvitie-krohi.ru', u'7ya-ru.cdn.ampproject.org', u'parents.ru', u'subsidii.net', u'malyshi.livejournal.com', u'tikitoki.ru', u'tishka.org', u'arborio.ru', u'woman-rambler-ru.cdn.ampproject.org']}}, u'lav3_12002': {u'size': 2107900.0, u'retargeting_stats': {u'retargeting_count': 1022, u'retargeting_ratio': 0.0949119373776908}, u'accumulation_stats': {}, u'top_affinity_sites': {u'affinities': [15.330805660439836, 13.943710414677446, 13.353049552011447, 13.306178473240736, 12.7688948879714, 12.25137311435794, 11.768088221639148, 11.6985434821931, 11.39407585709521, 11.286517307196053], u'sites': [u'parents.ru', u'amp.spb.kp.ru', u'kidsreview.ru', u'm.transferfaktory.ru', u'subsidii.net', u'amp.ufa.kp.ru', u'psychologos.ru', u'pda.rlsnet.ru', u'gotovim.ru', u'cheltv.ru']}}}, u'_id': u'1200_2019-08-24', u'day': u'2019-08-24'} - одна запись
Adilet
мне нужно сделать запрос по segments.тут_может_все_что_угодно.retargeting_stats: {}
Anonymous
есть ли неспящие?)
Anonymous
в докуенте храню массив с объектами. в объекте есть поле image, в котором хранится айдишник из другой коллекции. после того как я делаю $lookup этого поля, то исчезают остальные поля в этом объекте. почему и как исправить?
Anonymous
const findArticleAndPopulate = await domainDb .collection('articles') .aggregate([ { $match: { slug, }, }, { $lookup: { from: 'images', localField: 'content.image', foreignField: '_id', as: 'content.image', }, } ]) .toArray()
Артем
Добрый день, помогите пожалуйста с компасом. Создал пайплайн, хочу с помощью него сделать view. В документации сказано, что у кнопки save должно быть выпадающее меню, в котором создается view и такая возможность появляется с версии 1.14.0 . У меня версия 1.18.0 на macos и такого меню нет, прикрепляю скрин. Есть кнопка с тремя точками, но там нет view
Anonymous
Сделай as: 'images'
мне надо чтобы популейт был в объекте content.image, а не images
Anonymous
переименовать бд невозможно? только создавать новую и удалять старую?
Oleg
похоже да