Alexander
товарищи: а можете подсказать как результат запроса в текстовый файл можно скинуть?
Alexander
из консольного клиента монги
Oleg
В терминале команда > file.txt
Alexander
mongo —eval ?
Alexander
спасибо
yopp
И не забудь в printjson завернуть
yopp
Добавить индекс по actions.Date
yopp
Но сложные запросы по датам не взлетят
Noname
Где почитать про nosql атаки?
Noname
Owasp толком ответа не даёт
yopp
Где почитать про nosql атаки?
У всех баз свои языки запросов, так что в такой формулировке в теории безопасности субд
Noname
окей, конкретезирую вопрос, куда смотреть чтобы защитится используя mongodb+mongoose? интересуют именно атаки на базу
Server
С наступющим! Как решить эту задачку? http://jsbin.com/kaputilapu/edit?js,console
Eugene [MSK+3]
С наступющим! Как решить эту задачку? 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; }, {});
Denis
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; }, {});
тоже увлекся трансдьюсерами и начал юзать редьюс для любых операций над массивами?
ghett
а есть в теории фришный хостинг с монгой, ато у моего только MySQL
λ
HNY.
Anonymous
гайз, gui client для mongo - лучший выбор? os => linux || macos
Anonymous
в принципе, ответ найден - https://robomongo.org/
Anonymous
Robo 3T || Studio 3T
Noname
Studio 3T => дорохо бохато
Anonymous
Studio 3T => дорохо бохато
некоммерческая лицензия
Anonymous
Robo 3T под linux у меня не поставилась. удалили в последних версиях .deb. Studio 3T - установочный скрипт отлично все установил )
Alexander
mongo compass?
Anonymous
mongo compass?
поздно - studio 3t поставил успешно )
Anonymous
И как? Нра?
хз. я mongo только осваиваю ))
Ilyas
Привет Парни. Хотел спросить на счет репликации. Я хочу чтобы read операции осуществлялись в secondary. В монго есть для этого опция setReadPref. Вопрос в том, будут ли данные актуальные в secondary, если данные с primary в secondary синхронизируются ассинхронно?
Junusali
Привет! Я использую пакет питона pymongo. Есть функция поиска которая удолетворяет все в фильтре? Например у меня есть доки с параметром города. City может иметь различное значение. Найти например город можно вот так: collection.find({'city':'Chicago'}) Юзер выбирает искать по всем городам, тогда нужно будет вести типа: collection.find({'city':all}) Конечно я могу этот параметр и не включить в поиск, но мне надо чтобы он вернул все города
yopp
Всегда будет лаг между primary и secondary
yopp
Но в 3.6 есть хорошие новости https://docs.mongodb.com/manual/core/read-isolation-consistency-recency/#causal-consistency
yopp
Главный вопрос: что привело к тому, что ты хочешь читать с secondaries. Это оправдано в очень узком перечне кейсов
yopp
Если это для масштабирования, то нужно использовать шардинг, а не пытаться нагрузить secondaries
yopp
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
Anonymous
Можете подсказать смысл ошибки? The $changeStream stage is only supported on replica sets
Анатолий
Это агрегация?
Анатолий
В общем эта шткковина работает только если настроена реплика
Анатолий
Иначе нет 🙂
yopp
Можете подсказать смысл ошибки? The $changeStream stage is only supported on replica sets
Анатолий правильно сказал. Этой штуке нужен oplog, а он ведётся только с включённой репликацией. Просто включи репликации и не добавляй других нод
Sergey
Если это для масштабирования, то нужно использовать шардинг, а не пытаться нагрузить secondaries
Спорно и совершенно не рационально с точки зрения железа. Да и монговцы зачем-то casual consistency запилили в 3.6.
yopp
Спорно и совершенно не рационально с точки зрения железа. Да и монговцы зачем-то casual consistency запилили в 3.6.
Если внимательно читать мои сообщения, можно увидеть фразу «оправдано в узком перечне кейсов». сделать кластер с надежным чтением с secondaries — дорого.
yopp
Там не в отставании дело. А в HA
yopp
Требования по аппаратному резервированию в случае с чтения с secondaries совершенно другие
yopp
Иначе одна упавшая нода в реплике будет гарантировано укладывать всю реплику
Sergey
Ну добавить ноду в реплику дешевле, чем три в новый шард. Очевидно, что нагрузку надо оценивать и планировать деградацию. Просто когда данных мало и они влезают в одну ноду с запасом, как-то странно её бить на шарды. Тем более, что шарды своих проблем привносят.
yopp
Ёмкость реплик практически не масштабируется с ростом нод. Все ноды в реплике будут иметь один W, R на всех нодах будет в среднем на размер оплога + запросы. Так как балансировки нет, то и нагрузка будет равномерно размазываться по всем репликам и в итоге кеш будет занят примерно одиними данными.
yopp
Если делать read preference secondary, то нужно иметь минимум три secondary. Если делать secondaryPreffered то две, но с учетом удобства администрирования лучше три.
yopp
Короче это для local reads работает, а вот для остального — слабо.
yopp
Можно для ряда запросов к нагружённой коллекции сделать secondary, а для остальных primary. В этом случае можно снять нагрузку с primary. Но опять, это практически предел масштабирования внутри реплики.
yopp
Конечно, есть кейс когда не хватает сети, тогда да. Но это опять очень редко.
yopp
TL;DR: добавление нод в реплику добавляет мало условных qps.
Sergey
Я бы не был столько категоричен. Но все зависит от конкретного кейса и надо тестировать в конкретной ситуации. Если, например, 99% запросов - чтение, то профит будет достаточно серьёзный.
Sergey
Ну и local reads, да
Sergey
Можно написать неудачных запросов, которые не будут использовать shard key и тогда хоть 10 шардов сделай - тоже никакого толку не будет.
yopp
rs.init()
Ilyas
Но в 3.6 есть хорошие новости https://docs.mongodb.com/manual/core/read-isolation-consistency-recency/#causal-consistency
Спасибо, да для масштабирование, лучше буду использовать шардинг
Anonymous
rs.init()
Это единственный способ?
Anonymous
* rs.initiate()
yopp
https://docs.mongodb.com/manual/tutorial/deploy-replica-set/
yopp
https://docs.mongodb.com/manual/tutorial/deploy-replica-set-for-testing/
Anonymous
В 3.6.0 rs.initiate() просто работает, а в 3.6.1 я получаю already initialized.
Anonymous
Баг?
yopp
rs.status() что говорит?
ghett
зарегался, но ничего не понял, тем более, у них нет rpm'a
ghett
Возьми за три бакса виртуалку на ovh
в учебныйх целях начинающий фронт
CC-BY-SA-4.0/Docker-ce30.0
Фритир есть в амазоне