@MongoDBRussian

Страница 169 из 342
Pavel
28.12.2017
13:49:32
а по мануалам не получается?

нам с 2.6 до 3.2 приходилось Обновились без проблем

?
28.12.2017
13:52:37
Линк

Google
Pavel
28.12.2017
14:02:04
Upgrade mongodb в гугле

Первая ссылка

Выбирать по очереди только

С 2.4 на 2.6

Потом до 3.0

Потом до 3.2

Arcady
29.12.2017
09:46:11
Народ, помогите нубу в монге. Есть (в формате mongoose) такая модель: const User = { name: String, actions: [{Date: Date}] } Каким запросом удалить записи, в которых Date больше определенного числа, но не выгружая при этом в память все записи модели и не выгружая все записи из actions? Должен быть итератор типа .each , но не понимаю, какой.

Nick
29.12.2017
09:55:37
http://mongoosejs.com/docs/api.html#model_Model.update

никаких each, просто обыкновенный апдейт над коллекцие по условию

Arcady
29.12.2017
09:56:48
А если более сложная, чем ">" функция? Скажем, четный день?

Nick
29.12.2017
09:59:02
четный день месяца?

Arcady
29.12.2017
09:59:55
ну, к примеру. Просто функция любой сложности. Скажем, вместо Date стоит String и нужно сделать проверку текста какой-нибудь NLP-функцией на грамматическую корректность.

Nick
29.12.2017
10:01:59
https://docs.mongodb.com/manual/reference/operator/query/where/

Google
Arcady
29.12.2017
10:02:39
спасибо!

Nick
29.12.2017
10:03:11
можно передат ьполноценный js скрипт для обработки

ну не совсем полноценный

и такие запросы не будут использовать индексы, поэтому если опреации должны выполнятьс болеменее част ои за вменяемое время, то стоит изменить структуру данных

Arcady
29.12.2017
10:04:23
логично

Aleksandr
29.12.2017
10:40:18
товарищи: а можете подсказать как результат запроса в текстовый файл можно скинуть?

из консольного клиента монги

Олег
29.12.2017
10:44:38
В терминале команда > file.txt

Aleksandr
29.12.2017
10:45:25
mongo —eval ?

yopp
29.12.2017
10:46:15
Aleksandr
29.12.2017
10:46:23
спасибо

Noname
29.12.2017
12:36:15
Где почитать про nosql атаки?

Owasp толком ответа не даёт

yopp
29.12.2017
12:49:53
Где почитать про nosql атаки?
У всех баз свои языки запросов, так что в такой формулировке в теории безопасности субд

Noname
29.12.2017
12:51:15
окей, конкретезирую вопрос, куда смотреть чтобы защитится используя mongodb+mongoose? интересуют именно атаки на базу

Play
30.12.2017
16:19:01
С наступющим! Как решить эту задачку? http://jsbin.com/kaputilapu/edit?js,console

Eugene
30.12.2017
16:54:13
С наступющим! Как решить эту задачку? http://jsbin.com/kaputilapu/edit?js,console
const result = array.reduce((resObj, currEl) => { const { _id, subtitle, days = [] } = currEl; days.forEach(date => { if (!resObj[date]) resObj[date] = [] resObj[date].push({ _id, subtitle }); }); return resObj; }, {});

Google
Denis
31.12.2017
02:47:56
const result = array.reduce((resObj, currEl) => { const { _id, subtitle, days = [] } = currEl; days.forEach(date => { if (!resObj[date]) resObj[date] = [] resObj[date].push({ _id, subtitle }); }); return resObj; }, {});
тоже увлекся трансдьюсерами и начал юзать редьюс для любых операций над массивами?

Play
31.12.2017
10:59:00
Aleksandr
01.01.2018
03:43:45
а есть в теории фришный хостинг с монгой, ато у моего только MySQL

Arcady
01.01.2018
04:53:49
heroku?

Oleg
01.01.2018
05:09:43
HNY.

Arcady
01.01.2018
05:10:04
СНГ

Moe
01.01.2018
06:10:20
гайз, gui client для mongo - лучший выбор? os => linux || macos

в принципе, ответ найден - https://robomongo.org/

Robo 3T || Studio 3T

Noname
01.01.2018
06:22:44
Studio 3T => дорохо бохато

Moe
01.01.2018
06:26:36
Studio 3T => дорохо бохато
некоммерческая лицензия

Robo 3T под linux у меня не поставилась. удалили в последних версиях .deb. Studio 3T - установочный скрипт отлично все установил )

Aleksandr
01.01.2018
07:38:55
mongo compass?

Moe
01.01.2018
07:40:40
mongo compass?
поздно - studio 3t поставил успешно )

Max
01.01.2018
08:16:49
Moe
01.01.2018
08:17:28
И как? Нра?
хз. я mongo только осваиваю ))

Crazy
01.01.2018
11:38:48
Привет Парни. Хотел спросить на счет репликации. Я хочу чтобы read операции осуществлялись в secondary. В монго есть для этого опция setReadPref. Вопрос в том, будут ли данные актуальные в secondary, если данные с primary в secondary синхронизируются ассинхронно?

Jonas
01.01.2018
13:18:09
Привет! Я использую пакет питона pymongo. Есть функция поиска которая удолетворяет все в фильтре? Например у меня есть доки с параметром города. City может иметь различное значение. Найти например город можно вот так: collection.find({'city':'Chicago'}) Юзер выбирает искать по всем городам, тогда нужно будет вести типа: collection.find({'city':all}) Конечно я могу этот параметр и не включить в поиск, но мне надо чтобы он вернул все города

Google
yopp
01.01.2018
15:07:38
Всегда будет лаг между primary и secondary

Но в 3.6 есть хорошие новости https://docs.mongodb.com/manual/core/read-isolation-consistency-recency/#causal-consistency

Главный вопрос: что привело к тому, что ты хочешь читать с secondaries. Это оправдано в очень узком перечне кейсов

Если это для масштабирования, то нужно использовать шардинг, а не пытаться нагрузить secondaries

Stable: 3.6.1 (Dec 26, 2017), Bugfix: 3.4.10 (Oct 31, 2017) 3.6.1: https://docs.mongodb.com/manual/release-notes/3.6/#dec-26-2017 3.4.10: https://docs.mongodb.com/manual/release-notes/3.4/#oct-31-2017 3.2.18: https://docs.mongodb.com/manual/release-notes/3.2/#nov-29-2017

Котяй Негодяй
01.01.2018
15:26:08
Можете подсказать смысл ошибки? The $changeStream stage is only supported on replica sets

anatolii
01.01.2018
15:37:18
Это агрегация?

В общем эта шткковина работает только если настроена реплика

Иначе нет ?

yopp
01.01.2018
15:59:42
Можете подсказать смысл ошибки? The $changeStream stage is only supported on replica sets
Анатолий правильно сказал. Этой штуке нужен oplog, а он ведётся только с включённой репликацией. Просто включи репликации и не добавляй других нод

Sergey
01.01.2018
16:25:42
Если это для масштабирования, то нужно использовать шардинг, а не пытаться нагрузить secondaries
Спорно и совершенно не рационально с точки зрения железа. Да и монговцы зачем-то casual consistency запилили в 3.6.

yopp
01.01.2018
16:27:15
Спорно и совершенно не рационально с точки зрения железа. Да и монговцы зачем-то casual consistency запилили в 3.6.
Если внимательно читать мои сообщения, можно увидеть фразу «оправдано в узком перечне кейсов». сделать кластер с надежным чтением с secondaries — дорого.

yopp
01.01.2018
16:28:21
Там не в отставании дело. А в HA

Требования по аппаратному резервированию в случае с чтения с secondaries совершенно другие

Иначе одна упавшая нода в реплике будет гарантировано укладывать всю реплику

Sergey
01.01.2018
16:36:19
Ну добавить ноду в реплику дешевле, чем три в новый шард. Очевидно, что нагрузку надо оценивать и планировать деградацию. Просто когда данных мало и они влезают в одну ноду с запасом, как-то странно её бить на шарды. Тем более, что шарды своих проблем привносят.

Google
yopp
01.01.2018
16:40:52
Ёмкость реплик практически не масштабируется с ростом нод. Все ноды в реплике будут иметь один W, R на всех нодах будет в среднем на размер оплога + запросы. Так как балансировки нет, то и нагрузка будет равномерно размазываться по всем репликам и в итоге кеш будет занят примерно одиними данными.

Если делать read preference secondary, то нужно иметь минимум три secondary. Если делать secondaryPreffered то две, но с учетом удобства администрирования лучше три.

Короче это для local reads работает, а вот для остального — слабо.

Можно для ряда запросов к нагружённой коллекции сделать secondary, а для остальных primary. В этом случае можно снять нагрузку с primary. Но опять, это практически предел масштабирования внутри реплики.

Конечно, есть кейс когда не хватает сети, тогда да. Но это опять очень редко.

TL;DR: добавление нод в реплику добавляет мало условных qps.

Sergey
01.01.2018
16:51:59
Я бы не был столько категоричен. Но все зависит от конкретного кейса и надо тестировать в конкретной ситуации. Если, например, 99% запросов - чтение, то профит будет достаточно серьёзный.

Ну и local reads, да

Sergey
01.01.2018
16:58:31
Можно написать неудачных запросов, которые не будут использовать shard key и тогда хоть 10 шардов сделай - тоже никакого толку не будет.

yopp
01.01.2018
18:36:25
rs.init()

Crazy
01.01.2018
18:39:04
Но в 3.6 есть хорошие новости https://docs.mongodb.com/manual/core/read-isolation-consistency-recency/#causal-consistency
Спасибо, да для масштабирование, лучше буду использовать шардинг

Котяй Негодяй
01.01.2018
19:00:25
rs.init()
Это единственный способ?

* rs.initiate()

yopp
01.01.2018
19:03:50
https://docs.mongodb.com/manual/tutorial/deploy-replica-set/

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