Viktar
Индексы живут в коллекциях.
Dezmunt
Агрегация. Допустим я бы хотел во время матчинга по коллекции искать поля по дате не раньше текущей т прибавлять дату которая есть в поле, чтобы он искал по дате с учетом времени которое уже есть в поле. Суть вопроса, могу ли я как то получать доступ к полю чтобы его учитывать в match ?
Iskander
Всем привет! Подскажите, пожалуйста, можно ли написать следующий запрос? Есть коллекция, у каждого элемента есть вложенный объект X, с полем X.date. Нужно отфильтровать по этой дате, но прикол в том, что X - меняется, то есть, item.OfficialDocument.date, item.InvoiceDocument.date, item.PaymentDocument.date и т.д. Досталось такое наследие, приходится выкручиваться =(
Nick
Всем привет! Подскажите, пожалуйста, можно ли написать следующий запрос? Есть коллекция, у каждого элемента есть вложенный объект X, с полем X.date. Нужно отфильтровать по этой дате, но прикол в том, что X - меняется, то есть, item.OfficialDocument.date, item.InvoiceDocument.date, item.PaymentDocument.date и т.д. Досталось такое наследие, приходится выкручиваться =(
если набор Х полей ограничени вы его знаете, то просто перечисляйте, а иначе будет медленно и больно: агрегация, где либо объекты разворачиваются в массив ключ-значение ($objectToArray) и потом в нем уже чтото ищется (эт если надо чтото кроме даты фильтровать), либо делается фактически вытаскивание вложенного поля date на верхний уровень, что тоже самое требует перечисления списка Х полей но самое плохое что в обоих случаях вам не помогут индексы и любой запрос будет перелопачивать все доки в коллекции
Dmitriy
Подскажите пжлста) Как у монго установить таймаут для закрытия коннектов?
Dezmunt
Мы если в монгусе в схему добавили поля с дефолтными значениями как можно обновить поля в БД?
Max
Приветствую! Пытаюсь перенести одну коллекцию из одной БД в другую. Делаю такие команды: mongodump -d db1 -c vote_trade --archive --quiet > /tmp/vote_trade.dump mongorestore --nsInclude=db2.vote_trade --archive --drop < /tmp/vote_trade.dump В db1.vote_trade точно есть документы. И файл vote_trade.dump получился не пустой, там есть настоящие данные. Команда mongorestore выполняется без ошибки, но вот данные она никакие не добавила. 2021-04-05T09:33:04.296+0300 preparing collections to restore from 2021-04-05T09:33:04.307+0300 0 document(s) restored successfully. 0 document(s) failed to restore. В чем может быть проблема?
Max
Понял в чем проблема. Были разные имена баз данных, надо пользоваться —nsTo и —nsFrom, что-то типа такого: mongorestore --nsTo=new_db.vote_trade --nsFrom=old_db.vote_trade --archive --drop < vote_trade.dump
Dmitry
здравствуйте, кто-нибудь знает, на каких серверах запускается бесплатная версия монги?
Nikita
Всем привет! Может кто сталкивался Пишу dockerfile для сборки контейнера с базой монго и никак не могу прокинуть конфиг для базы. Dockerfile монго и mongod.conf лежат в одной директории. сам Dockerfile: FROM mongo COPY ./mongod.conf ./ как в нем можно описать часть в (())? docker run --name mongo_auth -d mongo ((--config mongod.conf))
Vladimir
только лучше не относительный путь в контейнере указывать ,а абсолютный
Arystan
Ребят, всем салем. можете помочь с запросом: мне нужно из таблицы вытащить документы по массиву id по одному на каждую, как это можно сделать?
Arystan
ор ведь возвращает по несколько если соответвуют одному
Arystan
то есть если в таблице есть два документа с одинаковыми id то он вернет обе, а мне нужен один
George
Всем привет! Подскажите, есть ли ограничение на кол-во коллекций создаваемых на инстансе? У нас кейс предполагает создание большого кол-ва коллекций долго живущих коллекций (чтения запись 50 на 50). Но с небольшим кол-вом данных. В среднем 500-5000 записей в коллекции. Структура данных в рамках коллекции однотипная. А вот коллекций может быть 10к-100к. В перспективе на каждой коллекции будут свои индексы, по мере необходимости Можем ли мы столкнуться с какими то лимитами при такой огранизации? Любые идеи пожалуйста. Заранее спасибо UPD Хоститься планируем на mongodb atlas если это имеет значение
Nick
Всем привет! Подскажите, есть ли ограничение на кол-во коллекций создаваемых на инстансе? У нас кейс предполагает создание большого кол-ва коллекций долго живущих коллекций (чтения запись 50 на 50). Но с небольшим кол-вом данных. В среднем 500-5000 записей в коллекции. Структура данных в рамках коллекции однотипная. А вот коллекций может быть 10к-100к. В перспективе на каждой коллекции будут свои индексы, по мере необходимости Можем ли мы столкнуться с какими то лимитами при такой огранизации? Любые идеи пожалуйста. Заранее спасибо UPD Хоститься планируем на mongodb atlas если это имеет значение
все ограничения по самой монге: https://docs.mongodb.com/manual/reference/limits/ в вашем случае вроде ничего по количеству не ограничивается, но надо помнить что каждая коллекция и каждый индекс - это файлы на диске и могут быть проблемы в нижележащей файловой системе. Знаю только что есть storage.directoryPerDB параметр, насчет по коллекциям сходу не нашел, так что это может быть серьезным ограничением
Nick
тут нужно тестить или прям узнавать у атласов смогут ли они нормально пережевать такое
Viktar
Я. Как то случайно сделал 12к коллекций. Ошибок не было
Nick
100к коллеций вместе с индексами рекомендуемая максималочка, надо идти к ним и узнавать есть ли варианты. Либо думать как шардить
sᴀᴍɪʀ
Здравствуйте, а как подключиться к Базе на телефоне через uri (mongodb://...)?
George
Спасибо всем за ответы Будем тестить Свою монгу разворачивать не хотим - готовить не умеем Облака видятся лучшим компромиссом
Eugen
Всем привет, Есть ли возможность удалить документ и все что с ним связано одним махом ?
Πάαβο ☃️
Всем привет, Есть ли возможность удалить документ и все что с ним связано одним махом ?
Средствами монги вряд ли, а какие-то фреймворки могут поддерживать каскадное удаление, зависит от ваших инструментов
Eugen
хм
Eugen
спасибо
Alexander Cheprasov
Всем доброго утра!) Подскажите, я впервые с таким столкнулся. 1) Получил массив объектов из БД 2) Хочу изменить кое какие поля или добавить свои поля и выплюнуть на фронт Но, проблема в том что я как я не пробовал изменить свойства, не работает 1) Классика, через мап - не работает, ни добавление новых, ни обновление текущих, просто в консоле тоже самое 2) Обратиться к объекту в массиве через индекс - 0 реакции, в объекте не появляется нового элемента 3) Сделать копию массива и работать с ним, нет, не получается изменить объект, он остается прежним..... 4) Попробовал результат map сохранять в отдельную переменную, ничего не меняется, в результате исходный массив с исходными объектами Но создаю независимы массив из объектов, и все работает как должно, неужели есть какое то понимание типо "защищенные объекты из монго"... Не нашел информации
WolderVsrat
Всем доброго утра!) Подскажите, я впервые с таким столкнулся. 1) Получил массив объектов из БД 2) Хочу изменить кое какие поля или добавить свои поля и выплюнуть на фронт Но, проблема в том что я как я не пробовал изменить свойства, не работает 1) Классика, через мап - не работает, ни добавление новых, ни обновление текущих, просто в консоле тоже самое 2) Обратиться к объекту в массиве через индекс - 0 реакции, в объекте не появляется нового элемента 3) Сделать копию массива и работать с ним, нет, не получается изменить объект, он остается прежним..... 4) Попробовал результат map сохранять в отдельную переменную, ничего не меняется, в результате исходный массив с исходными объектами Но создаю независимы массив из объектов, и все работает как должно, неужели есть какое то понимание типо "защищенные объекты из монго"... Не нашел информации
Это было бы слишком тупо Но что если внутри мапа сделать let new_field = blablabla let new_field2 = bla return { ...user, new_field, new_field2 }
WolderVsrat
Вообще с таким не сталкивался, спокойно объекты возвращаемые изменяются обычно
Alexander Cheprasov
Это было бы слишком тупо Но что если внутри мапа сделать let new_field = blablabla let new_field2 = bla return { ...user, new_field, new_field2 }
оказывается там сложная структура, сейчас попробовал диструктуризировать объект из find
Alexander Cheprasov
но если его просто консолить, то все эти поля будут скрыты и мы видим только то что в _doc
Alexander Cheprasov
Через _doc.name получается дотянуться до значения, но это чет слишком))
WolderVsrat
Хм, чот магия какая-то, обычно без проблем было) Как понимаю, монгус юзается же?
Alexander Cheprasov
да
Alexander Cheprasov
Alexander Cheprasov
https://coderoad.ru/19385079/%D0%9D%D0%B5-%D0%BC%D0%BE%D0%B3%D1%83-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D1%8B-%D0%B8%D0%B7-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0-%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2-Mongoose
Alexander Cheprasov
Оказывается там возвращается не JSON а mongoose документ.... Вот и вся магия))
WolderVsrat
Теперь я тоже буду знать xD Хотя может быть все дело в версиях монги, ибо я с таким не сталкивался даже
Павел
Всем привет, как описать в модели коллекции, что тип поля может бить строкой или числом?
Alex
Привет, коллеги! Подскажите пожалуйста реализовываю функционал flask c mongodb, Столкнулся с такой проблемой внес данные db.application_col.insert_one({'app_id': application_id, 'body': text}) в body внес длинный json, а когда делаю поиск по _id db.application_col.find_one({'_id': ObjectId("......")}) все время возвращается noneType?
Александр
Добрый день. Подскажите пожалуйста, ка из 1 варианта сделать 2 ? С помощью группировки Mongo ?
Viktar
Добрый день, есть csv с множеством значений 'U' которые явлются пустыми. гружу их через monngoimport который умеет не грузить пустые значения. Можно ли как то указать импорту, что значение 'U' является пустым?
Viktar
Кажется куда проще бахнуть cat file.csv | sed -r 's/U//g' > new.csv
Примерно так сейчас делаю. Но у меня файлов на пару терабайт. Сложно их хранить
Vladimir
аа
Vladimir
Примерно так сейчас делаю. Но у меня файлов на пару терабайт. Сложно их хранить
Похоже, что он буль, и как бы без вариантов. https://github.com/mongodb/mongo-tools/blob/master/mongoimport/csv.go#L42
Vladimir
но там сток кода, что можно докинуть, мне кажется)
Konstantin
хай
Konstantin
мне нужно отсортировать через агрегации пользователей по active == true const count = await UserEntity.aggregate( { $sort: { active: true } } ); что не так делаю?
Konstantin
src/domain/services/admin.service.ts:17:4 - error TS2345: Argument of type '{ $sort: { active: boolean; }; }' is not assignable to parameter of type 'any[]'. Object literal may only specify known properties, but '$sort' does not exist in type 'any[]'. Did you mean to write 'sort'? 17 $sort: { ~~~~~~~~ 18 active: true ~~~~~~~~~~~~~~~~ 19 } ~~~~
Vladimir
array же ждет, просто оберни в массив https://mongoosejs.com/docs/api/aggregate.html#aggregate_Aggregate
Konstantin
Vladimir
доку полистать)
Konstantin
}, 0|index | ... 186773 more items 0|index | ] 0|index | APIError
Konstantin
доку полистать)
можешь ссылку дать?
Konstantin
не могу найти че то метод
Vladimir
https://mongoosejs.com/docs/api.html#model_Model.countDocuments
Konstantin
Konstantin
мне надо вывод количества найденных записей сделать
Vladimir
https://mongoosejs.com/docs/api/aggregate.html#aggregate_Aggregate-count
Konstantin
https://mongoosejs.com/docs/api/aggregate.html#aggregate_Aggregate-count
мм, а как мне параметры вставить эти? const count = await UserEntity.aggregate([ { $match: { active: true } } ]);
Konstantin
хм
Konstantin
const count = await UserEntity.aggregate([ { $match: { active: true } } ])
Konstantin
вот так же искать по boolean?
Konstantin
const count = await UserEntity.aggregate([ { $match: { "active": true } } ])
Konstantin
попробовал даже так
Александр
Подскажите пожалуйста, как добавить второе совпадение в REGEX ?
Александр
Подскажите пожалуйста, как добавить второе совпадение в REGEX ?
const users = await Sessions.find({ $and: [ {centralPath:{$regex:'.*id.*'}}, {centralPath:{$regex:'.*rsn://.*'}} ]});
Artem
countDocuments()
Artem
просто query пустой db.collection('test').find()
Konstantin
db.find()
I
db.collection('test').find({})
Александр
Подскажите пожалуйста, как получить документы с последним StartTime ?
Александр
Документ по каждому пользователю, где startTime имеет последнее время