Shane
yopp
..
Anonymous
Кстати. deb-пакет с монгой самое то. И не надо никаких команд прописывать
Konstantin
подскажите как в монге можно сделать сессионный лок (типа как pg_advisory_lock() в Postgres или get_lock() в Mysql).
Нужно чтобы в один момент времени из коллекции читал только один инстанс приложения, при этом писателей м.б. > 1
Nikita
Добрый день. Для отслеживания изменений документов добавил в Java два поля createdDate и lastModifiedDate с аннотациями Spring-а @CreatedDate и @LastModifiedDate,
Проблема в том, что при обновлении документа (через upsert) createdDate всегда сбрасывается и устанавливается текущее время изменения. Как можно сделать чтобы это поле не изменялось после создания, а изменялось только lastModifiedDate?
yopp
Nick
Nikita
Ігор
Привет, а как можно с Аталаса експортировать бд на сервер?
Ігор
Не могу никак найти такой функции в атласе
Al
привет всем, подскажите кто может
как обратится к client правильно?
Внизу
from: "users",
localField: "order.client",
foreignField: "_id",
as: "order.client",
})
.unwind("$order.client")
Al
order.client.firstName - не работает
в кавычка тоже нет, знак доллара нельзя ставить, сам по себе firstName тоже не работает
Andrey
Eva🇺🇦
тяну пачками по 100 штук объекты через Model.aggregate. Сначала приходят массивы длиною по 100, в какой-то момент начинают приходить пустые, хотя skip/offset ещё не достиг своего максимума/конца. То есть из 1000 доков, например, приходит где-то 700, остальные 300 — пустые массивы
возможно, это связано с длиной соединения. Что подскажете?
Flake
Eva🇺🇦
Eva🇺🇦
Anonymous
Всем здравствуйте, где я могу найти примеры и туториалы как начать использовать mongo db и как записывать, узнавать данные
Vladyslav
Vladyslav
Anonymous
ConfigurationError(str(exc))
pymongo.errors.ConfigurationError: cannot open /etc/resolv.conf
Anonymous
2 строчки с импортом и коннектом написал уже ошибка
import pymongo
client = pymongo.MongoClient('mongodb+srv://несмотрисюда:айайай@cluster0-ysglw.mongodb.net/')
Anonymous
Что делать я уже устанавливал pymongo[srv]
Anonymous
Помогите
DG
Motor
Daniel
у меня сайт монги не работает через vpn
это как-то лечится?
Daniel
https://docs.db-ai.co/docs/manual/ это зеркало использовать?
Ігор
Привет, а как можно изменить название базы данных в монго 5?
Jasur Sharofiddinov
Hello, anyone used graphlookup in mongoDb for hierarchy data?
I m gettin a result, but not in order, any way to take hierarchy path ? sort method didnt help me
Al
Привет, не подскажите, как правильно писать facet?
MaryJ💻
Ребята, помогите пожалуйста понять где косяк?
Делаю запрос к БД, в postman в GET запросе выходит ошибка catch (error) c сообщением(ниже в body)
А должен выходить пустой массив [].
MaryJ💻
MaryJ💻
MaryJ💻
MaryJ💻
MaryJ💻
Sardor
Print our error message, not just plain message
Sardor
Airline reservation system project?
MaryJ💻
No, for the sale of planes)
Кылыч
здрасьте! господа, подскажите плиз, а возможно ли обновить документы, которые были найдены через findQuery? т.е. я сперва вытаскиваю query через find, делаю кое-какие операции через используя query, затем обновляю его
Артем
Артем
А, обязательно скачивать документы
Кылыч
ну через стрим да, чтобы я мог из него слепить csv и выгрузить его в облачное хранилище
Артем
А чем просто update по _id не подходит?
Артем
Сделал find, потом обновил. Можно даже в транзакции если атомарно несколько нужно обновлять
Кылыч
а если доков будет тысяча, не захлебнется монга?
Артем
А вы их за раз апдейтите или по очереди?
Артем
Я в одной транзакции апдейтил несколько тысяч доков и было ок
Артем
Тут наверное вопрос в модели, для меня звучит не совсем очевидно почему надо именно апдейтить док, а не условно инсертить новый в другую коллекцию
Кылыч
хмм, хороший вопрос
Кылыч
мой кейс таков: обновление документа, чтобы актуализировать инфу о том что данные синхронизированы, т.е. выгружены в облако. для этого я просто поставил флаг, который будет как раз таки показывать статус синхронизации
Артем
А объект только один раз синхронизируется за всю историю?
Артем
Или он поменялся, флаг сбросился, а потом синхронизировался и флаг установился
Кылыч
Артем
А нагрузка может быть условно любой?
Кылыч
пока что нагрузки небольшие, но вполне вероятно что она может увеличиться, поэтому хочется это сразу учесть
Артем
У меня была похожая задача синхронизации большого количества записей. Я это в итоге делал так: мне прилетал огромный список, я его резал на чанки по 10к записей, обрабатывал эти 10к (делал синхронизацию с хранилищем и уведомлял систему об обновлении), брал следующие и тд. Потому что если этого не делать, то в случае если прилетит 1М записей, то в оперативную память ничего не поместится. А если по одной записи апдейтить, то из за сетевых задержек это все будет происходить очень долго
Артем
В итоге я прикинул выгодный фиксированный размер чанка, который отрабатывается нормально монгой в одной транзакции (там были инсерты правда) и с ним работал. В итоге и нет риска что большая пиковая нагрузка убьет все, и не слишком долго работает. В каком то смысле здесь моделируется очередь
Артем
Может поможет, хз. А насчет того где флаг хранить, если это один раз за все время, то наверное не особо важно
Кылыч
спасибо за шейринг! пойду обмозговать
Кылыч
https://www.mongodb.com/docs/v4.4/reference/method/js-cursor/ - методы курсора подойдут для работы чанками, не так ли?
Артем
Ну я это через метод limit делал
Alexandrr
всем привет.
столкнулся с проблемой структуры данных:
1. из-за уникальности каждой записи, невозможно создать группирующие индексы
2. увеличив количество записей в 1 коллекции с 800к до 5 млн получил серьёзное замедление .find()
3. если при количестве 800к записей в коллекции поиск длился 560 ms, то с 5 млн длительность поиска возросла кратно
4. так например при 2.3 млн записей = 1.6 сек, при 5.2 млн = 3.3 сек
каким образом можно обойти это или решить?
п.с.
экспериментировал с ключами
с их длиной для каждой записи
с их типом полей текстовые или структурные
= результат поиска по длительности одинаковый.
Nick
Alexandrr
из-за уникальности каждой записи, невозможно создать группирующие индексы
Что мешает? Уникальность не помеха в чоздании индексов
каждая запись имеет такой вид:
{"p": "provider", "w": warehouse, "a": article, "i": info}
где:
р - поставщик (текстовая запись не более 25 символов)
w - название склада (не более 65 символов)
a - артикул (не более 16 символов)
i - [структура, с, объектами, данных]
пробовал:
так .create_index([('p', 'text')], name='p') (от каждого поставщика примерно 500-800к записей)
и так .create_index([('w', 'text')], name='w') (в каждом складе от 1к до 230к записей)
и так .create_index([('a', 'text')], name='a') (каждый артикул уникален)
результат по скорости поиска не изменялся.
скорость замерял с помощью:
.explain()['executionStats']['executionTimeMillis']
может я чего не пойму в создании индексов?
- доку вроде курил часа полтора, вычитал всё на офф сайте про индексы
- окольные статьи перечитал
- оверфлоу перегуглил
- форумы перешарил
Eva🇺🇦
при большом лимите в 5к доков (всего 12к, тяну пачками) возвращает пустой массив
в чем может быть проблема?
Артем
каждая запись имеет такой вид:
{"p": "provider", "w": warehouse, "a": article, "i": info}
где:
р - поставщик (текстовая запись не более 25 символов)
w - название склада (не более 65 символов)
a - артикул (не более 16 символов)
i - [структура, с, объектами, данных]
пробовал:
так .create_index([('p', 'text')], name='p') (от каждого поставщика примерно 500-800к записей)
и так .create_index([('w', 'text')], name='w') (в каждом складе от 1к до 230к записей)
и так .create_index([('a', 'text')], name='a') (каждый артикул уникален)
результат по скорости поиска не изменялся.
скорость замерял с помощью:
.explain()['executionStats']['executionTimeMillis']
может я чего не пойму в создании индексов?
- доку вроде курил часа полтора, вычитал всё на офф сайте про индексы
- окольные статьи перечитал
- оверфлоу перегуглил
- форумы перешарил
А сам планировщик что пишет? Он пользуется индексами в итоге?
Alexandrr
Артем
Плюс вы делаете по индексу на каждое поле, возможно стоит посмотреть на вот эту вещь https://www.mongodb.com/docs/manual/core/index-text/#wildcard-text-indexes
Артем
Если вы хотите что условно "все текстовые поля были индексированы"
Артем
Но это конечно не имеет отношения к тому, что у вас .find() по индексированному полю с коллекцией 5.2 млн записей ищет 3 секунды, это как то совсем долго
Eva🇺🇦
а в монго лимит на один документ 16 мб, или на пачку данных?
Alexandrr
Alexandrr
Nick
каждая запись имеет такой вид:
{"p": "provider", "w": warehouse, "a": article, "i": info}
где:
р - поставщик (текстовая запись не более 25 символов)
w - название склада (не более 65 символов)
a - артикул (не более 16 символов)
i - [структура, с, объектами, данных]
пробовал:
так .create_index([('p', 'text')], name='p') (от каждого поставщика примерно 500-800к записей)
и так .create_index([('w', 'text')], name='w') (в каждом складе от 1к до 230к записей)
и так .create_index([('a', 'text')], name='a') (каждый артикул уникален)
результат по скорости поиска не изменялся.
скорость замерял с помощью:
.explain()['executionStats']['executionTimeMillis']
может я чего не пойму в создании индексов?
- доку вроде курил часа полтора, вычитал всё на офф сайте про индексы
- окольные статьи перечитал
- оверфлоу перегуглил
- форумы перешарил
А выборка как выглядит?