
Sergey
10.05.2017
05:10:47

Alex
10.05.2017
05:10:52

redbeard
10.05.2017
05:11:45
эм... а вот под Idea бы...

Otan
10.05.2017
05:11:53
Офтоп. Ребята, я создал приложение для плэймаркет, которое поможет МонгоДБшникам изучить инглиш.. Пишите в личку. Скину ссылку.

Google

Sergey
10.05.2017
05:12:52

Alex
10.05.2017
05:13:34

Sergey
10.05.2017
05:13:44
Если вы начинаете хранить в монге реляционные данные, то где-то в выборе базы вы свернули не туда

Alex
10.05.2017
05:14:42

redbeard
10.05.2017
05:15:02
да продлит Йогг-Сотот твои дни, добрый человек :)

Alex
10.05.2017
05:18:34

Sergey
10.05.2017
05:19:49
Это нормально в такой ситуации взять SQL.
Потому что как только понадобится строить более сложные запросы - начнётся ад.

Alex
10.05.2017
05:22:00
увидел подобный чат, тоже человек использует объект юзера а не ссылку https://github.com/raineroviir/react-redux-socketio-chat/blob/master/src/server/models/Message.js#L9

Timur
10.05.2017
05:29:28
Что делать будешь, когда пользователя надо будет апдейтнуть?

Alex
10.05.2017
05:30:06

Sergey
10.05.2017
05:30:38

Google

Alex
10.05.2017
05:31:31
и как быть при таком подходе? выбирать все записи с этим юзером? не совсем просто пойму идею в целом

Sergey
10.05.2017
05:35:43
Без знания особенностей последующего доступа к этим данные сложно сказать что-то конкретное. Но оптимально все поля, по которым будет осуществляться фильтрация или сортировка, хранить в одной коллекции.

Alex
10.05.2017
05:41:41
всетаки в данном случаю думаю правильней будет хранить ссылку, эти данные же могут измениться. Только вот как тогда выбрать сообщения с нужными полями юзера, вот собственно в чем вопрос

Sergey
10.05.2017
05:43:00
Отбирать-то можно будет, только это уже будет медленно и без использования индексов.
И скорее всего запрос придётся писать вручную через aggregation framework.
(но это от orm зависит)

Stefan
10.05.2017
05:46:16

Sergey
10.05.2017
05:46:39

Alex
10.05.2017
05:47:13

Mikhail
10.05.2017
05:48:01

Alex
10.05.2017
05:48:31

Sergey
10.05.2017
05:50:45

Alex
10.05.2017
05:51:57
задача организовать чат, авторизация - регистрация - сокеты - пользователи - скорость и тд. Почему mongo? во первых знакомлюсь, и сколько не встречал, подобные задачи на монго реализованы

Sergey
10.05.2017
05:52:33
на чём сервер написан ?

Alex
10.05.2017
05:52:45
node

Sergey
10.05.2017
05:53:53
Советую почитать про монго про её сильные и слабые стороны, изучить потестить операции. И написать чат используя приемущества монги
Тогда всё будет круто ! )

Alex
10.05.2017
05:57:12
спасибо, именно на этом этапе я сейчас) знаю что будет весело, но уверен оно того стоит

Sergey
10.05.2017
05:59:07
Насчёт твоего вопроса, в сообщении нужно включить поля юзера необходимые для отображения сообщения, и ссылку на юзера, для клика и перехода на профиль юзера.
Фото хранить в GridFS

Google

Sergey
10.05.2017
06:01:12
возможно заюзать Capped collection для сообщений, если не нада архивировать очень старую историю

Alex
10.05.2017
06:03:19
да я фото вообще не храню на сервере, он ссылается на фото с api vk, допустим, в сообщении я укажу поля ссылки на фото, и псевдоним, а он изменит, и как быть?

Sergey
10.05.2017
06:05:17
фото закешировать у себя, для скорости
возможно будет интереснее если будет стоять то фото при котором было написанно сообщение
- фича твоего чата !
А вообще Фото меняется реже чем запрашиваются сообщения - выгоднее обновлять везде фото, чем делать ссылкой

Alex
10.05.2017
06:08:56
так то да, тем более история чата будет совсем небольшая, и на клиенте реакт будет хранить нужное количество сообщений, и отпинывать лишние
- фича твоего чата ! Это сильно)
думаю заказчику не очень понравиться моя фича

Sergey
10.05.2017
06:10:58
Короче говоря, если речь про скорость, то по максимуму подготавливаем данные под запросы, чтоб их не приходилось лопатить каждый раз, а берём почти готовые

Alex
10.05.2017
06:12:23
спасибо

Cyber
10.05.2017
10:29:00
Привет, а можно ли sql таблицу перевести в json и запушить в mongo?

Stefan
10.05.2017
10:32:21
Можно. А зачем?
Можно что угодно перевести в JSON и запушить в MongoDB.

Cyber
10.05.2017
10:36:37
Можно. А зачем?
нужна таблица готовых данных которая есть только в sql формате

Alex
11.05.2017
03:31:00
Доброго всем. Подскажите пожалуйста, можно ли вытащить с коллекции документы фильтра {type: "type1}, {type: "type2} и для каждого типа ограниченный лимит, допустим каждого типа по 20 документов. Можно ли сделать так в одном запросе? Промиссы? Отдельные роуты для каждого типа?

Igor
11.05.2017
16:48:55

yopp
11.05.2017
17:13:14

Igor
11.05.2017
17:15:51
о, йопп! привет!
а если надо убедиться, что type лишь уникальные?
к примеру db.coll.find({}).limit(5) возвращает пять документов [{group_id: 4}, {group_id: 4}, {group_id: 2}, {group_id: 1}, {group_id: 8}]
_id я опустил для упрощения.
а хочется чтобы хуяк distinct/unique по полю group_id и вернуло либо
[{group_id: 4}, {group_id: 2}, {group_id: 1}, {group_id: 8}]
(что не совсем круто, т.к. стоял лимит 5, и хотелось бы получить 5)
либо
[{group_id: 4}, {group_id: 2}, {group_id: 1}, {group_id: 8}, {group_id: 10}]


yopp
11.05.2017
17:18:37
о, йопп! привет!
а если надо убедиться, что type лишь уникальные?
к примеру db.coll.find({}).limit(5) возвращает пять документов [{group_id: 4}, {group_id: 4}, {group_id: 2}, {group_id: 1}, {group_id: 8}]
_id я опустил для упрощения.
а хочется чтобы хуяк distinct/unique по полю group_id и вернуло либо
[{group_id: 4}, {group_id: 2}, {group_id: 1}, {group_id: 8}]
(что не совсем круто, т.к. стоял лимит 5, и хотелось бы получить 5)
либо
[{group_id: 4}, {group_id: 2}, {group_id: 1}, {group_id: 8}, {group_id: 10}]
Привет. Какую проблему ты пытаешься этим решить?


Igor
11.05.2017
17:20:32
проблему "хотим на сайте отобразить пять карточек от разных партнеров, не должны повторяться".
может, sort меня здесь должен спасти, но гарантий же он никаких не даст?..

Google

yopp
11.05.2017
17:26:06
записей всего сколько?

Igor
11.05.2017
17:27:01
сейчас - 3000. может быть раз в 10-50 больше.
distinct('group_id') - сейчас 200. может быть тоже раз в 10 больше.

yopp
11.05.2017
17:27:31
я правильно понимаю что у тебя есть коллекция, в которой есть аттрибут group_id. Тебе нужно выбрать 5 объектов с уникальным group_id?

Igor
11.05.2017
17:27:53
да! сорри, что хреново сформулировал

yopp
11.05.2017
17:28:31
по group_id индекс есть?
но вообще на 3к докуметов я бы не запаривался и делал бы как быстрее и понятнее

Igor
11.05.2017
17:29:14
сделаем если что :)
правда, удручает еще, что на проде монга 2.6.7 и обновляться не хотят

yopp
11.05.2017
17:29:16
быстрее в смысле «быстрее реализуется»
на 3 тыщах докуметов вообще по барабану :)

Igor
11.05.2017
17:29:58
ок, а 50 тыщ тоже пофигу? объекты небольшие, килобайт наверное плейнтекстом если
хотя я в любом случае планировал выбирать, скажем, limit(5*2) и фильтровать дальше на бекенде потом
просто переживаю, что монга может сработать сильно производительнее

yopp
11.05.2017
17:35:07
писят тыщ килобайт это целых 48 мегабайт
это должна быть какая-то сильно порезанная по ресурсам виртуалка, чтоб прозед 48 мегабайт в памяти стал проблемой
но идея с 5*2 более простая, да
я бы её выбрал :)

Igor
11.05.2017
17:41:05
спасибо огромное :)

Alex
12.05.2017
06:16:00

George
12.05.2017
08:24:07
привет. нет никакого нативного решения, чтобы выдавать последовательно результаты query в монге? Она работает довольно медленно, если составил сложный запрос и хотелось бы быстро получать информацию.

Google

Aleksandr
12.05.2017
08:29:11
курсор?
я решал еще подобное пакетной обработкой
то есть с использованием skip() и limit()

George
12.05.2017
08:33:02
нужно передавать в аргумент функции результаты выполнения, так что итерироваться по курсору несколько раз не подходит
а через skip как?

Ростислав
12.05.2017
09:14:24
Добрый день, подскажите пожалуйста, я новичок в mongodb, хочу написать приложение на связки express + mongodb, раньше писал на ruby, python немного на go, использовал postgres либо mysql, можете сказать пожалуйста какие есть ограничения у mongodb, в плане, на сколько она лучше/хуже postgres'а либо mysql, можно ли делать какой-то большой сервис целиком на связки mongo и express ?

Sergey
12.05.2017
09:31:45
Добрый день, подскажите пожалуйста, я новичок в mongodb, хочу написать приложение на связки express + mongodb, раньше писал на ruby, python немного на go, использовал postgres либо mysql, можете сказать пожалуйста какие есть ограничения у mongodb, в плане, на сколько она лучше/хуже postgres'а либо mysql, можно ли делать какой-то большой сервис целиком на связки mongo и express ?
Сильно зависит от характера сервиса

Ростислав
12.05.2017
09:32:14
Подобный medbooking.com

Sergey
12.05.2017
09:33:21
Ну конечно можно сделать, и будет както работать. Но для лучшего решения нужно изучить приемущества, недостатки, особенности монги и будет понятно где ее применить в твоем мега сервисе

Ростислав
12.05.2017
09:37:39
Очень много слышу про популярный стек MEAN, захотел изучить его, ну и как я понял mongo и express тесно дружат

Sergey
12.05.2017
09:39:29
Попробуй

Ростислав
12.05.2017
09:42:03
Спасибо)

Sergey
12.05.2017
09:46:57
Я использую монго в игровом сервере, мне нравится возможность хранить структурированые иерарх данные, т.е объекты перегоняю в json напрямую. Отсутствие схемы, гибко можно добавлять удалять поля(но осторожно)
Скорость довольно высокая
Удобно хранить разреженные данные(это в другом проекте, где система собирала статистику на покер игроков для системы принятия решени0й для бота)
Нравится gridFS, и не нада париться с sql blob