@MongoDBRussian

Страница 98 из 342
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
Да, курсором. Не надо массив называть вложенной коллекцией.
кстати, нашел еще вариант перемещения коллекции https://stackoverflow.com/questions/27039083/mongodb-move-documents-from-one-collection-to-another-collection

yopp
09.06.2017
19:14:35
а называть документ объектом тоже некорректно?
Это ещё понятно. А вот на вложенной коллекции пришлось несколько раз перечитать чтоб понять что это просто массив

Можно сделать дамп, восстановить в новую колллекцию и удалить ненужные доки

Евгений
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
Кстати, там же вроде можно при инсертах-апдейтах прокидывать сортировку и вся коллекция пересортируется после изменения данных? Этим тоже пользоваться не стоит? Почему? Просто мне казалось, что БД с сортировкой в том числе должны гораздо эффективнее всяких там питонов и ноджсов справляться Но я в монге не шарю от слова совсем

Евгений
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
Точнее objecttoarray и есть unwind для объектов/документов
Спасибо за наводку, выглядит как то что нужно, но я уже обошелся map-reduce

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 ?

Alex
15.06.2017
04:36:42
А зачем на mongodb?
Много юзеров. Нужен "scale"

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

Alex
15.06.2017
06:30:17
На диск не помещается ? Или скорость чтения низкая ? А сейчас какая база ?
Просто задел на будущее. Ожидается "handreds of thousands" юзеров. И нужно перенести базу сейчас. Но я не вижу решений использования никаких других БД кроме "MySQL и MariaDB". По сути, wordpress приложение обрабатывает платежи (WooCommerce), все остальное будет на AWS API Gateway и DynamoDB

Alex
15.06.2017
07:09:57
Если денег на AWS хватает, возьмите там rdbms. Или ещё лучше сразу взять премиум/vip план у wp, пусть у них голова болит как это скейлить.
понял. Спасибо. Про aws rds почему-то и не вспоминал. Просто мне говорят: "Ты мигрируй, а мы разберемся". Интересные ребята, может что-то знают)

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
дамп есть, думаю проще перезалить
ради интересна действительно попробуй compact

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

Страница 98 из 342