
yopp
05.06.2017
14:40:11
например простой кейс: есть временная серия. в одну еденицу времени не может быть двух значений для одного атрибута

Nick
05.06.2017
14:40:18
но не так сильно разбирался в сути

yopp
05.06.2017
14:40:35
нам не имеет смысла хранить ObjectId потому что он балласт и у нас и так уже есть уникальная пара атрибутов
мы можем положить это в _id: {t: 1234, d: 42}

Google

Nick
05.06.2017
14:40:55
вот как раз сейчас такой кейс

yopp
05.06.2017
14:41:39
но выборки без полного указания _id (типа только по _id.t или _id.d) не будут работать без дополнительных индексов

Nick
05.06.2017
14:41:40
но опять же для обращения к полям а не по целому _id нужны будут индекс по типу _id.docId
ага
а я смогу использовать _id.vvv как шард ключ?

yopp
05.06.2017
14:43:11
шард ключ к _значениям_ никакого отношения не имеет
шард-ключ на самом деле это «шард индекс»
ты можешь создать индекс из чего угодно, если он удовлетворяет требованиям к шард ключу — ты можешь использовать префикс этого индекса или весь индекс целиком как шард ключ
но ещё нужно понимать что индексы по вложенным аттрибутам всегда будут требовать fetch
так как index-only queries работают только по полям в корне документа.

Nick
05.06.2017
14:45:47
ну мне либо апдейты дока либо полный док нужны, так что особо значения не будет иметь

Artur
05.06.2017
17:42:31
Коллеги, а что с bitwise операторами индекс не работает?
Вот черт, оно с hint'ом только работает.

Google

Алексей
05.06.2017
19:46:29
у меня 15к коннектов к монге. ААААА я не хочу шарды :(

Alex
05.06.2017
19:57:34
Use postgres dude:)

Алексей
05.06.2017
20:03:02
у меня он тоже есть.
pgbouncer руляет

yopp
05.06.2017
20:10:53

Алексей
05.06.2017
20:11:02
с ней всё ок.

yopp
05.06.2017
20:11:27
Там же нет view особо для соединения, так что коннекты жрут немного памяти и всё

Алексей
05.06.2017
20:11:39
я боюсь будующего в котором именно колво коннектов станет причиной по которой придется делать шарды
у монги 20к ограничение сверху

yopp
05.06.2017
20:12:00
Да?

Алексей
05.06.2017
20:12:03
ога да

yopp
05.06.2017
20:12:08
Ну реплику пошире

Igor
06.06.2017
09:33:07
Охх.
Есть задачка возвращать документы, отсортированные так, что сначала идут объекты с русским текстом в одном из полей, а потом с английским/циферками/спецсимволами.
Монго 2.6 :\ find().collate() вроде нельзя сделать.
как это можно реализовать?
в робомонго вижу, можно сделать индекс по нужному полю ({'name': 1}) и в text search указать default lang/lang override: russian, но, кажется, это меня не спасло

yopp
06.06.2017
09:44:28
Скорее всего обновить многу до 3.4 будет самым простым способом.

Igor
06.06.2017
09:44:40
гыгыгы. постараюсь убедить, спасибо

yopp
06.06.2017
09:44:43
Там уже collation нормально реализованы
Но я не пробовал, рекомендую на тестовом столе проверить

Ivan
07.06.2017
07:51:31
ребят, есть книжка где объясняется как в mongoose делать сложные запросы как в sql join having и т.д., когда несколько связанных таблиц?

Nick
07.06.2017
07:52:52
Тебе $lookup
Если не хватит, то монга не подходит для твоей задачи

Google

Ivan
07.06.2017
07:54:31
не подскажите, есть ли бесплатный серв баз данных sql онлайн типа mlab для монго?

yopp
07.06.2017
08:11:49
Это против концепции монги. Это конечно можно реализовать, но боль от использования и поддержки этого решения будет феноменальной.
Для монги в первую очередь нужно начать думать документами, а не связями.
Бесплатную монгу в MongoDB Atlas можно взять.

Aleksandr
07.06.2017
08:14:23
ребят, я добавился в эту группу 2 года назад и до сих пор БД не касался
я правильно понял, что монга хранит данные в стиле JSON? т.е. парами ключ-значение?

Igor
07.06.2017
08:16:27
коллекция скорее все же на массив/список из объектов (хешей, словарей) похожа
обычная строка - типа, "hello" - это тоже валидный JSON, есличо

yopp
07.06.2017
08:17:12
Если совсем упрощённо — да. У тебя есть ключ _id и к нему привязан BSON документ произвольного содержания. Всего два ограничения: _id уникальный и весь bson не больше 16мб
Коллекции это namespace внутри которого должно выполнятся правило об уникальности.

Ivan
07.06.2017
08:20:40
а не монго есть бесплатные серверы?
Бесплатную монгу в MongoDB Atlas можно взять.

yopp
07.06.2017
08:21:22
Это чят про монгу, про другие субд я не знаю. Уверен что есть. Гугл в помощь

Aleksandr
07.06.2017
08:49:54

yopp
07.06.2017
08:51:44

Aleksandr
07.06.2017
08:52:59
Это неверный json
ну так я о чём, Igor заявил, что просто стринг валиден как json, или я чё то не понял?

yopp
07.06.2017
08:53:46
Он говорил в внутреннем представлении коллекции. Любой документ должен сам по себе быть валидным BSON документом.
С минимум одним ключом: _id

Aleksandr
07.06.2017
08:54:58
всё, треш какой то начался. я пойду в ридонли на год ещё схожу))

Google

Igor
07.06.2017
08:55:33

GNU/Docker
07.06.2017
10:32:51
Лучше в доку бы сходил.

yopp
07.06.2017
10:36:17
Latest: 3.4.4 (Apr 21, 2017), Stable: 3.2.13 (May 1, 2017)
3.4.4: https://docs.mongodb.com/manual/release-notes/3.4/#apr-21-2017
3.2.13: https://docs.mongodb.com/manual/release-notes/3.2/#may-1-2017
Пришло время обновляться до 3.4.1+: https://aphyr.com/posts/338-jepsen-mongodb-3-4-0-rc3

Max
07.06.2017
11:33:25
товарищи, а подскажите, плиз.
oplog в монге лежит в базе local.
Размер оплога -
configured oplog size: 51200MB (это 50 гиг)
А если сделать show dbs, то получается вот так:
local 24.762GB
оплог в 50 гиг занимает на диске неполных 25 гиг?
или show dbs врёт и не надо туда смотреть?

Alex
07.06.2017
11:35:37
это особенность Монги
под оплог отжирать сразу место
в размере 5% от диска кажется.

Max
07.06.2017
11:38:52

Alex
07.06.2017
11:39:22
ну размер оплога это размер оплога

Max
07.06.2017
11:39:22
/me по недоразумению в свое время думал, что 50 гиг это вообще макс размер.
а теперь куча интима с этим оплогом, ых

Alex
07.06.2017
11:39:29
а размер базы это размер базы
это плохо коррелирующие между собой вещи :)

Max
07.06.2017
11:40:22
так а какой параметр важнее?
в моем понимании оплог должен быть всегда набит полностью - чтобы "отмотаться" назад можно было.
и он полный.
и 50 гиг
а на диске - 25 :)

Sasha
07.06.2017
11:40:39
добрый день, друзья, тут можно по выборке и удалению данных вопрос задать?

Alex
07.06.2017
11:40:58
Размер базы это то сколько у тебя данных
Размер оплог (если я не ошибаюсь), это журнал изменения данных, который ротируется в пределах этих 50Гб

Max
07.06.2017
11:41:50
Размер базы это то сколько у тебя данных
Да, я понимаю.
судя по доке - оплог - это обычная capped collection, и в качестве cap-а — 50 гиг.
но как и почему оно на диске занимает меньше места? должно же быть всегда в районе 50 гиг занято

Alex
07.06.2017
11:42:06
так что я не очень понимаю сравнительные характеристики между этими двумя величинами

Igor
07.06.2017
11:42:08
сжатия нет никакого?

Google

Max
07.06.2017
11:42:28

Alex
07.06.2017
11:42:48
а как ты понял что на диске меньше занимает ?

Max
07.06.2017
11:42:50

Alex
07.06.2017
11:43:02
у тебя по идее должно быть занято 75Гб
а не 25 :)

Max
07.06.2017
11:43:14

Alex
07.06.2017
11:43:27
а df -H что кажет ?