Artem👨🏻💻🛥🐋
Kek
как можно избавиться от всего "лишнего" и получить только то что я вижу в бд?
yopp
Kek
Nick
Artem👨🏻💻🛥🐋
-
-
В самом конце
Alex
Всем привет! Чем кроме mongostore можно восстановить .gz архив mongo
Sergii V.
Коллеги, всем привет!
Подскажите инструмент для построения схемы базы данных и связей
Я нашел этот https://hackolade.com/
Нужна рекомендация что Вы применяете!
Заранее спасибо!
Виталий
народ привет
Виталий
подскажите пожалуйста нужно с монге сделать агрегацию по 3 коллекциям, чтобы вернуло результат кол-1 {кол-2, кол3 c одновременным соблюдением условий в колллекии 2 и 3 по фильтрации
Виталий
через какой путь в агрегации это делается? если делаем в пайплайне два лукапа оно ведет себя как выборка по принципу ИЛИ
Виталий
а нам крайне важно заставить монгу выдать только по принципу И
Nick
Виталий
условно есть заказы, позиции и юзеры
Виталий
надо от заказа найти все что подходит по условию позиция заголовок = хххх и юзер емайл = ееее
Виталий
при том в заказе юзер и позиции это рефы
Виталий
да пример этот видели, но проблем в чуть чуть другом, у нас сразу две подколлекции с условиями
Nick
Муслим
добрый день, не могу ни как сделать запрос, работаю через "mongodb compass", в таблице есть объект внутри объекта есть DateTime и Ticks, хочу сделать запрос диапозона даты CreationTime.DateTime
CreationTime (Object)
-> DateTime 2023-09-08T13:15:00.261+00:00
-> Ticks 638297757002615422
как только не перепробовал не работает такой поиск ((( help пожалуйста
Назар
Муслим
покажите как пробовали
вот так не работает:
{ CreationTime: { $gt: ISODate('2021-01-01') } }
так тоже:
{ CreationTime: { DateTime: { $gt: ISODate('2021-01-01') } }}
Муслим
я понимаю что поле DateTime прячется внутри объекта, но как к нему достучаться и проверить в запросе не понимаю (((
Муслим
CreationTime - формат Object
DateTime - это формат DateTime
Назар
через точку {«CreationTime.DateTime»: …}
Стас
Привет. Пытаюсь спроектировать REST api, но вот с монгой совсем плохо знаком. Пара вопросов:
1) Как спроектировать бд, если задача - под N зареганных юзеров сделать собственные коллекции с данными о товарах, остатках, настройках и тд
2) По расписанию каждый день в одну коллекцию добавляются данные о продажах для накопления статистики, Данных довольно много и коллеция растет каждый день на 40Кб. Как обычно организуют подобные вещи? Разбивают на отдельные коллеции или что-то еще?
Alexandr
Ivan
Стас
ну или уйдет больше времени чтоб разобраться
Стас
Стас
если у каждого пользователя свой список покупок
h8ace
Всем привет, не подскажете в чем тут проблема?
Query failed with error code 13 with name 'Unauthorized' and error message 'command find requires authentication' on server 10.10.10.10:27017?
У меня есть MongoDB cluster из 3 нод, я шард не использую, чистый реплика сет.
Конечно же у меня перед кластером стоить Haproxy. Я через Haproxy подключился к текущего primary db, но не могу там достать коллекций.
storage:
dbPath: /var/lib/mongodb
# engine:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1,10.10.10.9
# how the process runs
processManagement:
timeZoneInfo: /usr/share/zoneinfo
security:
keyFile: /mongo.yaml
#operationProfiling:
replication:
replSetName: "rs001"
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
Konstantin
всем привет!
подскажите, появятся ли какие-то подводные камни с монгой в случае, если в коллекции использовать _id типа guid вместо стандартного objectid?
yopp
Здравствуйте 🙂 Да в целом никаких, кроме того что _id индекс будет чуть больше, из-за того что guid длинее чем oid
yopp
В целом object id ~~ uuidv4
Konstantin
Andrey
h8ace
Andrey
h8ace
Andrey
Эм не совсем понял?
зачем балансер, прокси для монги? сервисам понятно, а базе данных зачем?
h8ace
h8ace
у вас реплика сет, меня поправят, но насколько я помню, в реплике сет - пишет всегда мастер, а читать можно указать через настройки подключения к кластеру. Посмотрите документацию. Если бы у вас были разные кластеры, разные инстансы с разными целями, или особенной конфой. Тогда понятно. Но тут, могу ошибаться, но прокси тут лишний.
Хорошо я вас дополню,
Есть кластер монго, да они на разных инстансах, и тем более в разных сетях находится. ( 3 ноды)
Я понимаю что всегда пишет мастер. Но тут дела в сервисах, допустим мастер упал, и сейчас пишет другой мастер, а у него айпи совсем другой. Как мне своим сервисам бекэнда, который в другой сети, в другом городе сказать, что сейчас пишет другой мастер?
Бэкэнд на шарпе
Askhat
Тогда нужна нода арбитр, чтобы такие вопросы решать
Andrey
h8ace
Andrey
Askhat
Указываю к сожалению
Нужно в строке подключения указывать формат подключения как к репликасету и тогда при наличии арбитра будет все ок
Andrey
h8ace
Askhat
Andrey
Askhat
Понятно что может. Просто зачем вставлять в инструмент то, что ему изначально не пренадлежит. Тпк называемый прокси у монги из коробки уже есть и работает корректно и без лишних особо настроек
h8ace
h8ace
Yevgen
Привет. Есть такой вопрос. Есть такой датасет. Группа 1: car1, car2; Группа 2: car3, car4. Каждая машина имеет пробег. В коллекции нет групп. Группы надо создать в монгодб аггрегации и посчитать пробег по каждой группе. Кто-то может подсказать примеры, как это правильно решить.
Nick
Sergey
ребят, всем привет. есть проблемка:
имеется документ X. у него есть массив Y.
каждый элемент этого массива - это документ, у которого есть некоторое поле id
нужно: получить документ X, и чтобы в массиве Y оказались только те документы, айди которых равен, например, 1. elemMatch не подходит, так как он не кладёт в массив все документы, а только один.
составил запрос с агрегацией, но, кажется, что можно сделать проще:
db.list.aggregate([{$match: {_id: ObjectId("64f998428f32813ba68010eb"), "subscriptions.channel": 1}}, {$unwind: "$subscriptions"}, {$match: {"subscriptions.channel": 1}}, {$group:{"_id":"$_id","subscription":{$push:"$subscriptions"}, "email": {$first:"$email"}}}])
может кто-то подсказать, как правильнее всего составить такой запрос?
Nick
ребят, всем привет. есть проблемка:
имеется документ X. у него есть массив Y.
каждый элемент этого массива - это документ, у которого есть некоторое поле id
нужно: получить документ X, и чтобы в массиве Y оказались только те документы, айди которых равен, например, 1. elemMatch не подходит, так как он не кладёт в массив все документы, а только один.
составил запрос с агрегацией, но, кажется, что можно сделать проще:
db.list.aggregate([{$match: {_id: ObjectId("64f998428f32813ba68010eb"), "subscriptions.channel": 1}}, {$unwind: "$subscriptions"}, {$match: {"subscriptions.channel": 1}}, {$group:{"_id":"$_id","subscription":{$push:"$subscriptions"}, "email": {$first:"$email"}}}])
может кто-то подсказать, как правильнее всего составить такой запрос?
посмотрите на $filter и не надо будет $unwind/$group делать