
Sergey
09.06.2017
19:00:34
Большие?
Достаточно большие что бы по ним фильтровать

yopp
09.06.2017
19:00:56
Любой поиск с условием — фильтр
Нужно индексы правильно расставить и всё будет хорошо. Коллекция маленькая, проблема только в том, что working set перестал влазитььв память.

Vyacheslav
09.06.2017
19:03:30
ок, понял

Google

yopp
09.06.2017
19:04:16
Следующая проблема будет что индексы перестанут в память влазить. Но тут уже надо будет вертикально масштабироваться.

Sergey
09.06.2017
19:05:27
Я думаю что не эффективная модель данных

Igor
09.06.2017
19:06:39

Vyacheslav
09.06.2017
19:08:44

yopp
09.06.2017
19:14:35
Можно сделать дамп, восстановить в новую колллекцию и удалить ненужные доки

Sergey
09.06.2017
19:17:12

Евгений
10.06.2017
04:16:56
Всем доброго! Подскажите куда копать, есть коллекция мобов, у них есть массив дропа ресурса, где каждый дроп - объект вида { name: "zxc", value: 123 } . как отсортировать мобов по дропу какого-то ресурса?

Igor
10.06.2017
04:18:13
По дропу - в смысле? По value?

Евгений
10.06.2017
04:19:34
по value именно в объекте с заданным name
.sort({"drop.value": -1}) сортирует по максимальному value вообще (

Igor
10.06.2017
04:21:08
.find({'drop.name': 'zxc'}) перед этим еще, наверное

Google

Евгений
10.06.2017
04:21:52
я первым делом так и попробовал ... но нет
фильтрация ок, а сортировка не верная

Igor
10.06.2017
04:30:51
https://stackoverflow.com/questions/15136016/how-can-i-sort-by-elemmatch-in-mongodb
не подойдет?

Евгений
10.06.2017
04:32:42
Кажется то чтоо надо! Приду проверю. Спасибо.!
еще и оставляет толкьо найденный элемент массива! супер!

Sergey
10.06.2017
05:32:02
Загружай мобов на сервер и держи их в памяти, сортируй как угодно, не напрягай этим базу

Igor
10.06.2017
05:33:37
Кстати, там же вроде можно при инсертах-апдейтах прокидывать сортировку и вся коллекция пересортируется после изменения данных?
Этим тоже пользоваться не стоит? Почему?
Просто мне казалось, что БД с сортировкой в том числе должны гораздо эффективнее всяких там питонов и ноджсов справляться
Но я в монге не шарю от слова совсем

Sergey
10.06.2017
05:40:53

Евгений
10.06.2017
05:59:27
ну тут это редкая операция + кеширование. но надо

Artem
11.06.2017
17:41:14
Привет) А про mongoose сюда можно писать?

Roman
13.06.2017
13:08:52
Коллеги, может кто подсказать? Есть ли в aggregation framework возможность выполнить что-то вроде $unwind для всех свойств документа? Т.е. есть документ {data: {field1Id: {...}, field2Id: {..}, ..}}, нужно вытащить все вложенные документы из data

yopp
13.06.2017
13:18:02
Простого способа нет. Если названия ключей заранее известны то можно использовать серию $push или сходный по эффекту механизм. Если названия не известны, то вероятно задача в таком виде не решается
https://jira.mongodb.org/browse/SERVER-18794
Надо посмотреть реально ли попал бекпорт в 3.4.4, тогда такая задача решается
Если не попал, то ждите 3.6

Roman
13.06.2017
13:32:03
Вроде попал, тогда странно, что-то у меня не получилось
Спасибо за помощь

yopp
13.06.2017
13:38:17
А что не получилось?
Кстати, а есть аналог sqlfiddle но для монги?

Roman
13.06.2017
14:50:21
Не получилось с $unwind, хз, в чем причина. В принципе, обошелся map-reduce с записью в другую коллекцию

Google

Sergey
14.06.2017
05:37:48
тоже попал на эти грабли, в mongo рекомендуется использовать массивы а не наборы свойств. если нужно потом ими оперировать, делать что то большее чем обращение по известному ключу

Sergey
14.06.2017
06:35:55
Та же фигня (

Sergey
14.06.2017
09:23:27
Map - как раз сериализуется в такую структуру с ключами. Нада теперь что то думать, как то в масив конвертировать
Дописать к gson свой конвертор для map

yopp
14.06.2017
10:19:50
Точнее objecttoarray и есть unwind для объектов/документов

Roman
14.06.2017
10:40:54

yopp
14.06.2017
12:11:46
У тебя была одна проблема, теперь у тебя их три ;)

Roman
14.06.2017
12:39:03
js, монга и map-reduce?

Alex
14.06.2017
21:00:15
Гайс, быть может кто-нибудь сталкивался: можно ли запустить Wordpress/Woocomerce на MongoDB ?

Sergey
15.06.2017
03:59:48

Alex
15.06.2017
04:36:42

Sergey
15.06.2017
05:09:37
На диск не помещается ? Или скорость чтения низкая ?
А сейчас какая база ?

Alex
15.06.2017
06:30:17

yopp
15.06.2017
06:43:04

Alex
15.06.2017
07:09:57

Nick
15.06.2017
07:52:23
тут как раз было
https://habrahabr.ru/company/infopulse/blog/330708/

yopp
15.06.2017
09:08:37
Это называется предварительная оптимизация. Тут ничего нового нет.

Vyacheslav
15.06.2017
09:16:30
Здравствуйте!
Можете подсказать, как такое может быть?
> db.col1.count({x : {$exists : 1}})
2280000
> db.col1.count({x : {$exists : 0}})
0
> db.col1.count()
2270000

Google

yopp
15.06.2017
09:18:48
db.coll1.stats() что показывает?

Vyacheslav
15.06.2017
09:21:36
https://pastebin.com/KXHCavYJ

yopp
15.06.2017
09:25:56
на всякий случай: x это не url_1 случайно?
в смысле поле которое в url_1 индексе (вероятно просто `url: 1`)

Vyacheslav
15.06.2017
09:27:36
не, в данном случае x это массив
url_1 - это просто поле, по нему индекс

yopp
15.06.2017
09:27:52
коллекция не шарженная?

Vyacheslav
15.06.2017
09:28:13
имеется ввиду на несколько машин?

yopp
15.06.2017
09:28:16
по stats очевидно что нет
да

Vyacheslav
15.06.2017
09:28:21
нет

yopp
15.06.2017
09:28:24
и не реплика?

Vyacheslav
15.06.2017
09:28:29
нет

yopp
15.06.2017
09:29:25
а какая версия монги?

Vyacheslav
15.06.2017
09:29:32
3.4.5

yopp
15.06.2017
09:30:07
попробуй mongoshell сессию перезапустить?
помогло?

Vyacheslav
15.06.2017
09:34:08
нет, все также
вопрос в том, что я вчера переносил данные из одной коллекции в другую с помощью скрипта на Perl и initialize_ordered_bulk_op для бысрого переноса (и взял буфер 10000), и execute по заполнению этого буфера
и где-то в середине выдало ошибку
MongoDB::Network Error: Unexpected end of stream

yopp
15.06.2017
09:35:46
соединение отвалилось
бывает.

Vyacheslav
15.06.2017
09:36:15
и после этого вот так

Google

yopp
15.06.2017
09:36:15
интересно. попробуй через aggregation framework сделать count
ну самый простой вариант: сделать дамп и восстановить из дампа
если ты переносил из другой коллекции, то сделать дамп той коллекции и его восстановить в другуб коллекцию (`-c` в mongorestore кажется)

Artur
15.06.2017
09:37:09
А нет у нее никакого repair?

yopp
15.06.2017
09:37:31
можно и repair, это всё примерно одно

Artur
15.06.2017
09:37:31
Еще можно попробовать индекс пересоздать.

yopp
15.06.2017
09:37:45
какой индекс ты собрался пересоздавать?
и зачем главное?

Vyacheslav
15.06.2017
09:37:51
дамп есть, думаю проще перезалить
да, индекса на это поле нет, т.к. это массив

Artur
15.06.2017
09:38:12
На поле, если по нему идет поиск. Но нет, так нет.

yopp
15.06.2017
09:38:35

Vyacheslav
15.06.2017
09:38:45
я просто думаю, что индекс на массив будет большим