
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
спасибо

yopp
29.12.2017
10:46:58
И не забудь в printjson завернуть
Но сложные запросы по датам не взлетят

Noname
29.12.2017
12:36:15
Где почитать про nosql атаки?
Owasp толком ответа не даёт

yopp
29.12.2017
12:49:53

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

Google

Play
30.12.2017
16:56:49

Denis
31.12.2017
02:47:56

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

Aleksandr
01.01.2018
07:38:55
mongo compass?

Moe
01.01.2018
07:40:40

Max
01.01.2018
08:16:49

Moe
01.01.2018
08:17:28

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})
Конечно я могу этот параметр и не включить в поиск, но мне надо чтобы он вернул все города

Mikhail
01.01.2018
13:38:54

Google

Nick
01.01.2018
14:15:38


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

Sergey
01.01.2018
16:25:42

yopp
01.01.2018
16:27:15

Sergey
01.01.2018
16:28:05

yopp
01.01.2018
16:28:21
Там не в отставании дело. А в HA
Требования по аппаратному резервированию в случае с чтения с secondaries совершенно другие
Иначе одна упавшая нода в реплике будет гарантировано укладывать всю реплику

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

yopp
01.01.2018
16:37:54

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, да

yopp
01.01.2018
16:56:41

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

Котяй Негодяй
01.01.2018
17:23:23

yopp
01.01.2018
17:28:23

Котяй Негодяй
01.01.2018
18:32:39

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

Crazy
01.01.2018
18:39:04

Котяй Негодяй
01.01.2018
19:00:25
* rs.initiate()

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