yopp
https://www.youtube.com/watch?v=WNLzoNQf8dA
Анатолий
спасибо
Oleg
ребят, вопрос может быть не совсем точным как проапдейтить вложенный документ не изголяясь с полным путем? сейчас есть документы с большой вложеностью и писать этот путь выглядит ужасно в шарповом биндинге ситуация получше, что не надо стрингой это писать, а экспрешеном, который указывает на поле, но смысл остается тот же получается колбаса может это стоит как то концептуально иначе решать? дробить там на коллекции, но тогда теряется смысл нестед документов
Oleg
(миграцию не предлагать)
SvPupok
Олег, а надо ли такая вложенность? вы реально, так же используете информацию, как и храните ее?
Oleg
да
Oleg
но это можно в принципе обсудить
Oleg
хотелось бы сохранить читаемость дб
Oleg
и не дробить на коллекции
Oleg
сразу уточню что у нас контекст геймдева
Oleg
и энтити игрока достаточно сложные
Oleg
и собственно они только и имеют много вложенных документов
Oleg
то есть маппинг идет прямо 1 в 1 в коде и данные не мутируют, а только меняются
rdcm
ну вынеси что-то в одну соседнюю коллекцию, через LookUp заберешь данные за один запрос
rdcm
большая вложенность это плохо
rdcm
https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/
Oleg
ну вынеси что-то в одну соседнюю коллекцию, через LookUp заберешь данные за один запрос
вот к такой мысли и пришел просто интересовался решением by design
Oleg
как это обычно делают в монге
Roman
Добрый день. Не могу понять как победить делаю запрос Dialogue::find() ->andWhere(['_id' => new ObjectId("$dialogue_id")]) ->andWhere(['or', ['owner_id' => $owner], ['created_by' => $owner] ])->one(); система преобразовывает вот в такой find({"ns":"admin.dialogue","filter":{"$and":[{"_id":"MongoDB\\BSON\\ObjectId(5b1550595b60a300054ec63c)"},{"$or":[{"owner_id":8},{"created_by":8}]}]}}) так запись не находит, но если руками сделать find({"ns":"admin.dialogue","filter":{"$and":[{"_id":ObjectId('5b1550595b60a300054ec63c')},{"$or":[{"owner_id":8},{"created_by":8}]}]}}) то запись находит
Roman
как я понимаю все из-за "MongoDB\\BSON\\ObjectId(5b1550595b60a300054ec63c)"
Roman
но как его победить не понятно
Roman
притом что инсерты и апдейты по ключам работают
Nick
но как его победить не понятно
пилите репорт писателям драйвера
Amir
в общем это уже оффтоп, я предложил - вы отказались, делао ваше
Читайте глубже, leveldb много где используется
Nick
а смысл? вот оно уже потора года в бою и какоето kv-хранилище мне его заменит?
Nick
за нулевую стоимость и нулевое время
Amir
Я вообще то про фразу непонятное хранилище :)
Nick
ну так оно все еще остается непонятное в разрезе конкретной задачи про аппенд-онли лог
Amir
Так Кафка тоже не сильно понятный выбор
Nick
и мы вернулись к тому с чего начали, не вижу ссмысла продолжать разговор
Nick
какфа потому что два года назад была только кафка, сейчас бы пульсар глянул
Amir
А причём тут серийные дб
Amir
Может мы про разные задачи все же?
Nick
ты сюда с какой задачей пришел? event sourcing - аппенд онли лог
yopp
Гайз а в монге append only лог организовать как то можно?
Какие задачи стоят перед append only логом? Так то у вас уже event stream есть из оплога.
Amir
Не уверен что oplog хватит - это же capped collection вроде
Amir
Да и для другого оно
yopp
Это понятно. Что вы данными хотите потом делать?
Amir
Аналитика инцидентов
Amir
Выборки и все такое, в монгу все рано придётся обратно заталкивать
yopp
Не уверен что oplog хватит - это же capped collection вроде
Вы пишите в свою коллекцию, отбираете у всех права, кроме как на чтение. Базовые инструменты оповещений вам монга даст через оплог в виде эвент стримов.
Amir
Ну как то так и представлял себе, тут уже вопрос больше что с оплогом и стримами не работал, не понятно как seek делать, что бы продолжить чтение из оплога с последнего места
yopp
оплог не вечный, вы можете продолжить пока у вас «последнее место» в самом оплоге. емнип, драйвера которые умеют в event stream уже поддерживают это автоматически
yopp
Во вторник, 12 июня, с 19:00 до 21:00 Артем (@SvPupok) проведет следующий стрим. Будем разбираться с репликацией и шардингом на практических примерах. public poll Да, хочу участвовать ▫️ 0% Нет, мне неудобно ▫️ 0% Нет, мне неинтересно ▫️ 0% 👥 Nobody voted so far.
yopp
Да, уже вижу :)
yopp
¯\_(ツ)_/¯
Bandikoot
в форвардах не рабоает голосование
лучший способ пропиарить канал
Nick
в котором 3 человека и единственная запись с апреля)))
yopp
лучший способ пропиарить канал
Единственный способ узнать реальное количетво прочитавших
Bandikoot
Единственный способ узнать реальное количетво прочитавших
я могу зайти, прочитать и не подписываться
yopp
Можешь конечно :)
Aleksey
а. его нету тут
yopp
Хм
Aleksey
можно статс бота добавить
Aleksey
он умеет такую штуку
yopp
Да один фиг это всё тоже самое :)
yopp
Канал и форвард
Aleksey
ну да. но нет
Aleksey
и чот мне кажется он уже 3 раза меня посчитал
Maksim
Вечер добрый
Maksim
возможно ли запрос если коллекции имеют вид db.name.dname1 db.name.dname2 db.name.*.find() ?
Maksim
так понятно дело не работает )
Maksim
не нашел как правильно загуглить вопрос
yopp
нет, нельзя
yopp
запрос может быть только в одну коллекцию
Данил
Подскажи пожалуйста. При запуске через шелл монги В монги функцияметод print он выполняется локально на клиенте? т.е. я получаю на клиента json а далее функция print выводит и форматирует результат уже локально на пк с которого был послан запрос
yopp
Да
yopp
С одной поправкой, что на клиенте получается не json, а bson
Timur
Привет, пользуюсь Robomongo. Не знаете, у программы этой нет возможности делать экспорты как у mongoexport?
Timur
есть у Studio 3T
Понял, спасибо
Pavel
Всем привет, только начинаю разбиратся. Скажите, а я могу указать когда информация будет считаться записанно. Допустим на 2 сервера или N/2 + 1
Pavel
Есть возможность для разных запросов задавать разные условия?