Artem
Можешь конечно, оператор $inc в помощь, запрос типа update
так мне нужно в query указать какой документ я ищу, но я при этом не знаю х.
Vova
так мне нужно в query указать какой документ я ищу, но я при этом не знаю х.
Хм, тогда $exists в фильтр, проверит поле на существование/отсутствие
Artem
Вот я могу допустим написать так: Coll.update_one( {'CountOfViews': int}, { '$inc': {'CountOfViews': 1} }?
Vova
Вот я могу допустим написать так: Coll.update_one( {'CountOfViews': int}, { '$inc': {'CountOfViews': 1} }?
Да, примерно так, оно будет инкрементить только в документах с определенным значением поля
Vova
{'CountOfViews': {'$exists': true} }
Vova
А это там где поле существует
Artem
ок, пасиб
yopp
Если их несколько, то необходим какой-то уникальный идентификатор который будет уточнять запрос
Artem
Если их несколько, то необходим какой-то уникальный идентификатор который будет уточнять запрос
Не, это будет лишь 1 документ, который выступает в роли счётчика чего-либо
yopp
Тогда можно обойтись просто updateOne без условия
yopp
Но надежнее добавить идентификатор
Vova
Если в коллекции окажется несколько документов, запрос выполнится только для нужного
yopp
Например {metric: “viewsCount”, value: 12} и в условии указывать metric: viewsCount
Artem
Ок, спасибо
Balu
народ, есть ли практика использования монго для финансовых отчетов - как OLAP ? у кого нить есть такой опыт ?
Artem
народ, есть ли практика использования монго для финансовых отчетов - как OLAP ? у кого нить есть такой опыт ?
От части. Именно данное применение у меня было в боте, тесно связанный с финансовой частью, оборот около 5к юзеров. Всё хорошо, заказчика устраивает.
Veaceslav
Кто-то знает коннектор для подключения монги к google datastudio?
Avtandil
Привет всем. Поделитесь инфой как импортировать локальную коллекцию в mongodb cloud atlas. Заранее благодарен.
Aleksandr
mongodump + mongorestore
Ansat
привет всем. как лучше реализовать сохранение сообщений в чате: клиент отправляет сообщение -> сокет это слушает -> сохранение сообщения. юзаю mongoose.
Balu
агрегаты собирали в монге?
Avtandil
mongodump + mongorestore
Благодарю.
Аркадий
Никто не знает, почему может выдаваться такая ошибка? "MongoError: Topology is closed, please connect"?
Anonymous
How's everything with you?
Anonymous
How's everything with you?
bofh666
Коллеги, привет! Кто-нибудь MongoDB юзает прям плотно? Есть кластер простейший, репликасет из трех нод. Внезапно отъебнула одна нода (тупо юнит системд упал). В логах пусто. Разрабы жаждут крови. Было у кого-нибудь такое?
madspectator
Я думаю, он спрашивает, почему упала монга и почему в логах пусто.
bofh666
так именно для этого у тебя три ноды в репликасете. ставишь новый сервак, синкаешь работаешь дальше
То есть такое поведение бай дизайн? Прикручивай мониторинг и поднимай руками?
bofh666
(простите за тупые вопросы, до этого юзал нормальные СУБД)
Araik
Подскажите пжл, мне нужно вставить или обновить массив документов в базу т.е. при наличии документа в базе обновить, при отсутствии добавить, я так понимаю правильней всего использовать UpdateMany и с опцией upsert, но как условие задать, не пойму?
Araik
документов может быть от штук 10 и до сотни за 1 запрос
Anonymous
Доброе утро, кто может посоветовать по инфраструктурному решению, что лучше: 3 хоста по 1gb/1cpu, на каждом хосте отдельная монга или один хост помощнее, на котором развернуто несколько монг в докере
Anonymous
А для юнита systemd можешь настроить OnFailure=
Anonymous
Но если падает по памяти, надо разбираться.
Nick
Доброе утро, кто может посоветовать по инфраструктурному решению, что лучше: 3 хоста по 1gb/1cpu, на каждом хосте отдельная монга или один хост помощнее, на котором развернуто несколько монг в докере
советую определить требования к производительности и доступности данных, а так же к тому сколько из них можно потерять - после этого уже проводите нагрузочное на том железе которое у вас есть и примерно понимаете сколько сможете получить производительности - потом принимаете решение на основе цифр
Murena
Всем привет подскажите - ищу по массиву обьектов { _id: 1, name: { first: 'John', last: 'Backus' }, birth: new Date('Dec 03, 1924'), death: new Date('Mar 17, 2007'), contribs: [ 'Fortran', 'ALGOL', 'Backus-Naur Form', 'FP' ], awards: [ { award: 'National Medal', year: 1975, by: 'NSF' }, { award: 'Turing Award', year: 1977, by: 'ACM' } ] } с помощью db.users.find({awards: {$elemMatch: {award:'National Medal', year:1975}}}) можно ли как то сделать так чтоб - поиск вернул только конкретный елемент массива который соответствует поисковой фразе ? а не все что там есть ?
Ilya
отфильтровать необходимые поля через projection ?
Ilya
https://docs.mongodb.com/manual/reference/operator/projection/elemMatch/
Ilya
все время забываю про эту штуку However, the $elemMatch projection returns only the first matching element from the array.
Sergey
db.users.find( {}, { _id: 0, awards: { $elemMatch: { award: 'National Medal', year: 1975 } } } ); Нет? > поиск вернул только конкретный елемент массива Какой именно? А если в результате поиска найдётся два и более элементов, соответствующих условию?
Murena
спасибо!
Арлан
Всем привет! Впервые работаю с NodeJS + MongoDB, и столкнулся с проблемой, при запросе к API, полученные данные нужно добавить в базу. Применяю метод findOneAndUpdate, ошибок нет, но в базе пусто
Арлан
findOneAndUpdate это метод обновления существующих документов. Используйте insertOne/insertMany
Но перед этим, необходимо, чтобы в базе уже существовали какие-то данные? Или не обязательно?(т.е. я хочу ее сформировать с нуля на основании данных запроса)
yopp
Но перед этим, необходимо, чтобы в базе уже существовали какие-то данные? Или не обязательно?(т.е. я хочу ее сформировать с нуля на основании данных запроса)
Да. Первый метод когда уже есть документы, которые вы хотите найти и обновить. insert создаёт новые документы
Anonymous
Экспортирую коллекцию в csv, и экспортируются не все поля, это возможно из за того что они не совпадают? То есть в одном объекте есть поле, которого нет в другом
Anonymous
И кто нибудь экспортировал в csv? Можете дать совет?
Anonymous
Коллекция выглядит примерно так
Anonymous
В компасе всё нормально отображается, хочу чтобы в csv так же было
Araik
Да. Первый метод когда уже есть документы, которые вы хотите найти и обновить. insert создаёт новые документы
а если применить опцию upsert, при отсутствии документа, новый не добавиться?
Araik
У меня схожая задача, проверить, если документ существует - то обновить, если не существует - то добавить, хотелось бы понять, есть ли готовый инструмент в монго или нужно сначала делать find и в зависимости от результата update или insert?
yopp
В этом случае да, upsert подходящий инструмент
Araik
а, погодите, я уже тестил)) новый документ создается при отсутствии
yopp
Скорее всего первый документ, который выбирается из базы не содержит необходимых полей. Так как схемы в монге нет, при инициализации экспорта нет возможности быстро определить какие поля будут
yopp
А ретроспективно добавлять поля очень дорого
yopp
Это по сути надо по новой экспортировать
Artem
Такой вопрос я могу делать InsertMany
Artem
что бы не дожидаться ответа от сервера
Artem
Просто накидать накидать туда
Adamets
возможно Нубский вопрос не кидайте помидоры😅 Я только иду во всю эту тему с дб бэком, для работы с монго желательно знание SQL||mysql||nosql
Anton
Помогите вернуть одно поле из объекта коллекции
Alexander
Да, ответ очевиден: не желательно, а нужно. Без понимания реляционной модели данных, даже на монге не построить хорошего приложения.
Araik
почему реляционной, если подходы совершенно разные?
Araik
к примеру, если в реляционной модели нормализация базы необходимый процесс, то в монге это совершенно не верный подход и нужна скорее денормолизация базы
Araik
да и во многом, инструменты другие и на другом уровне реализуется, к примеру, что-то типа каскадного удаления\изменения данных, если в реляционных базах, есть готовые инструменты для этого, то в монго это на программном уровне делается
Araik
Я в целом не обладаю достаточным опытом конечно, чтобы спорить, такие вот первые наблюдения, поэтому тут скорее хотел бы и для себя прояснить тоже