yopp
https://www.youtube.com/watch?v=WNLzoNQf8dA
Анатолий
спасибо
Oleg
ребят, вопрос может быть не совсем точным
как проапдейтить вложенный документ не изголяясь с полным путем?
сейчас есть документы с большой вложеностью и писать этот путь выглядит ужасно
в шарповом биндинге ситуация получше, что не надо стрингой это писать, а экспрешеном, который указывает на поле, но смысл остается тот же
получается колбаса
может это стоит как то концептуально иначе решать?
дробить там на коллекции, но тогда теряется смысл нестед документов
Oleg
(миграцию не предлагать)
SvPupok
Олег, а надо ли такая вложенность? вы реально, так же используете информацию, как и храните ее?
Oleg
да
Oleg
но это можно в принципе обсудить
Oleg
хотелось бы сохранить читаемость дб
Oleg
и не дробить на коллекции
Oleg
сразу уточню что у нас контекст геймдева
Oleg
и энтити игрока достаточно сложные
Oleg
и собственно они только и имеют много вложенных документов
Oleg
Oleg
то есть маппинг идет прямо 1 в 1 в коде и данные не мутируют, а только меняются
rdcm
ну вынеси что-то в одну соседнюю коллекцию, через LookUp заберешь данные за один запрос
rdcm
большая вложенность это плохо
rdcm
https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/
Oleg
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
притом что инсерты и апдейты по ключам работают
Amir
Nick
а смысл? вот оно уже потора года в бою и какоето kv-хранилище мне его заменит?
Nick
за нулевую стоимость и нулевое время
Amir
Я вообще то про фразу непонятное хранилище :)
Nick
ну так оно все еще остается непонятное в разрезе конкретной задачи про аппенд-онли лог
Amir
Так Кафка тоже не сильно понятный выбор
Nick
и мы вернулись к тому с чего начали, не вижу ссмысла продолжать разговор
Amir
Nick
какфа потому что два года назад была только кафка, сейчас бы пульсар глянул
Amir
А причём тут серийные дб
Amir
Может мы про разные задачи все же?
Nick
ты сюда с какой задачей пришел? event sourcing - аппенд онли лог
Amir
Amir
Не уверен что oplog хватит - это же capped collection вроде
Amir
Да и для другого оно
yopp
Это понятно. Что вы данными хотите потом делать?
Amir
Аналитика инцидентов
Amir
Выборки и все такое, в монгу все рано придётся обратно заталкивать
Amir
Ну как то так и представлял себе, тут уже вопрос больше что с оплогом и стримами не работал, не понятно как seek делать, что бы продолжить чтение из оплога с последнего места
yopp
оплог не вечный, вы можете продолжить пока у вас «последнее место» в самом оплоге. емнип, драйвера которые умеют в event stream уже поддерживают это автоматически
yopp
Во вторник, 12 июня, с 19:00 до 21:00 Артем (@SvPupok) проведет следующий стрим. Будем разбираться с репликацией и шардингом на практических примерах.
public poll
Да, хочу участвовать
▫️ 0%
Нет, мне неудобно
▫️ 0%
Нет, мне неинтересно
▫️ 0%
👥 Nobody voted so far.
Aleksey
yopp
Да, уже вижу :)
yopp
¯\_(ツ)_/¯
Bandikoot
Nick
в котором 3 человека и единственная запись с апреля)))
Bandikoot
yopp
Можешь конечно :)
Aleksey
Aleksey
а. его нету тут
yopp
Хм
Aleksey
можно статс бота добавить
Aleksey
он умеет такую штуку
yopp
Да один фиг это всё тоже самое :)
yopp
Канал и форвард
Aleksey
ну да. но нет
Aleksey
и чот мне кажется он уже 3 раза меня посчитал
Maksim
Вечер добрый
Maksim
возможно ли запрос если коллекции имеют вид
db.name.dname1
db.name.dname2
db.name.*.find() ?
Maksim
так понятно дело не работает )
Maksim
не нашел как правильно загуглить вопрос
yopp
нет, нельзя
yopp
запрос может быть только в одну коллекцию
Maksim
Данил
Подскажи пожалуйста.
При запуске через шелл монги
В монги функцияметод print он выполняется локально на клиенте?
т.е. я получаю на клиента json а далее функция print выводит и форматирует результат уже локально на пк с которого был послан запрос
yopp
Да
yopp
С одной поправкой, что на клиенте получается не json, а bson
Timur
Привет, пользуюсь Robomongo. Не знаете, у программы этой нет возможности делать экспорты как у mongoexport?
Yurii
Timur
Pavel
Всем привет, только начинаю разбиратся. Скажите, а я могу указать когда информация будет считаться записанно. Допустим на 2 сервера или N/2 + 1
Slava
Pavel
Есть возможность для разных запросов задавать разные условия?