yopp
Нет, приложение понимает только 1 адрес
Что вы имеете ввиду под «понимает»? Если вы не указываете все адреса в connection string вашего драйверах, значит вам необходимо их указать См https://docs.mongodb.com/manual/reference/connection-string/#standard-connection-string-format.
Viktor
Что вы имеете ввиду под «понимает»? Если вы не указываете все адреса в connection string вашего драйверах, значит вам необходимо их указать См https://docs.mongodb.com/manual/reference/connection-string/#standard-connection-string-format.
Окей, я укажу все три инстанса. И тогда приложение будет отправлять запрос на запись сразу на три инстанса, а запишет только примари?
yopp
Нет, клиенты по спецификации обязаны писать только в текущего выбранного primary
Viktor
Нет, клиенты по спецификации обязаны писать только в текущего выбранного primary
Как клиент это узнает? Это рокетчат, он пишет в монгу, но не знает кто примари
yopp
Как клиент это узнает? Это рокетчат, он пишет в монгу, но не знает кто примари
Для этого есть специальный механизм определения топологи, вам не надо об этом думать.
yopp
Ваша задача передать клиенту адреса всех или большинства в реплике, чтоб в случае отказа клиент мог хоть куда-то подключится. В случае если в кластере произойдут выборы, клиенты получат уведомление об изменении топологии и автоматически переключатся на нового праймари
yopp
Драйвер который использует рокетчат, если он следует спецификации.
Hallo
А можно мне ссылку на трансляцию на ютубе по вчерашним докладам?
yopp
https://youtu.be/SiawV5vbjMo
hi
Мне кажется быстрее будет написать обновлятор на forEach
в 4.0.10 все так же, пишу обновлятор на forEach, но что-то не пойму, как в каждый обьект массива добавить поле Date(signedDate) того же объекта. это надо что ли взять весь массив contracts, в js его обновить в цикле и потом заменить? типа update({_id:doc._id}, {$set:{contracts:updatedContracts}})
hi
Да, это самый быстрый вариант.
понял, спасибо большое. позже, наверное уже завтра отпишу по результатам тестирования
tsar
tsar
как это сделать правильно?
yopp
как это сделать правильно?
https://docs.mongodb.com/manual/reference/operator/aggregation/multiply/ вместо звездочки
tsar
спасибо
Nick
Скажите для начала а для чего будут использоваться эти логи? Как быстро нужно к ним обращаться?
Nick
Все 100к записей?
Nick
А более старые нужны или прям их можно удалять?
Nick
Тогда однозначно отдельная коллекция запись лога = один документ
Nick
С ид юзера
Nick
В дальнейшем вы скорее всего пересмотрите саму задачу, подход к ней, и как следствие способ хранения
Nick
Да
Nick
Только обязательно указывайте поле для сортировки
Nick
Ну и про индекс юзерИд-время не забудьте
Nick
Я про то, что когда у вас будет больше 100гб логов и примерно 100-500млн записей, вы упретесь в скорость и цену железа и будете пересматривать эту часть задачи
Nick
Да все еще лучше, т.к. Один док в монге ограничен 16мб и рано или поздно найдется юзер который вам все это сломает. 16мб это всеголишь 16к записей по килобайту
Nick
Тогда точно достаточно монги и отдельной коллекции без всяких доп инструментов и вопросов как быть с архивированием и т.п.
hi
Да, это самый быстрый вариант.
доброе утро, новое поле вот так создавал doc.data.contracts[i]['dateSignedDate']=new ISODate(doc.data.contracts[i].dateSigned); взял сначала просто Date, работало так же, прочитал, что вроде как ISODate буде лучше, переделал на него, создал индекс, но все равно работает так же https://pastebin.com/n1N50dHf как-то иначе это делать надо или все норм и остается только про баг в жиру писать?
yopp
Бакетами по количеству документов отображаемых на странице и с группировкой по пользователю
hi
Значит это побочный эффект массива.
Как-то это странно, напишу все в жиру
yopp
Как-то это странно, напишу все в жиру
А покажите explain с двумя границами и с одной?
yopp
А, с двумя границами вижу
yopp
Покажите с одной?
hi
Покажите с одной?
https://pastebin.com/fhFcNDRm
yopp
yopp
Заведите баг, приложите тестовый кейс
hi
Заведите баг, приложите тестовый кейс
тестовый кейс это дамп базы?
yopp
И запросы
yopp
Можете обезличить другие данные
yopp
https://groups.google.com/forum/#!topic/mongodb-user/iZ67kDHy5n0
yopp
4.0.10 (May 31) ◦ 3.6.12 (Apr 8) ◦ 4.2.0-rc0 (Jun 5) События: • 17–19 июня, Нью-Йорк, Конференция: MongoDB World (900$) • Плейграунд для запросов • Документация • Официальные курсы по MongoDB Stable: 4.0.10 | Bugfix: 3.6.12 | Legacy: 3.4.20 (Mar 13) | Dev: 4.2.0-rc0 (Jun 5) End of life: 3.2.21 (Sep ’18), 3.0.15 (Feb ’18)
yopp
Mutable Shard Key Values: You can now update one or more shard key values to modify the placement of a document in a cluster using a single, all-or-nothing ACID transaction (subject to the existing 60 second default execution time).
yopp
On-Demand Materialized Views: Outputs from aggregation pipeline queries can now be merged with existing persisted result sets whenever you run the pipeline, giving you materialized views that are refreshed on-demand.
yopp
Вот это очень интересно
Bro
Ого да
RA-TA-TATA
Подскажите пожалуйста, как можно скопировать документ из 1 коллекции в другую коллекцию?
hi
да
можно так db.col2.insert(db.col1.findOne({<тут ваш запрос>},{_id:0}))
hi
можно так db.col2.insert(db.col1.findOne({<тут ваш запрос>},{_id:0}))
если не нужно, чтобы в новом документе _id был новый, то без {_id:0} даже
Denys
подскажите такое дело, есть документ с такими полями как, имя, группа и год. и нужно сделать так что бы сначала сгрупировало по году, а потом по группам уже внутри годов?
Denys
тоесть примерно такая структура [ {year: '2019', groups: []}, {year: '2018', groups:[]} ]
Denys
что, никто не поможет?
yopp
тоесть примерно такая структура [ {year: '2019', groups: []}, {year: '2018', groups:[]} ]
https://docs.mongodb.com/manual/reference/operator/aggregation/group/#group-by-month-day-and-year
Denys
https://docs.mongodb.com/manual/reference/operator/aggregation/group/#group-by-month-day-and-year
ну и что ме это дало? Сгрупировать по году я могу
Denys
а дальше?
yopp
Если вы хотите чтоб вам помогли, то прекратите хамить и уважительно относитесь к поддержке сообщества. В противном случае вас ждёт бан
Denys
извините, если вы посчитали это хамством, я не хотел вас обидеть
yopp
Если вы хотите сложить документы внутри года в массив, то https://docs.mongodb.com/manual/reference/operator/aggregation/push/
Denys
Denys
у меня уже получилась такая структура
Denys
но как сделать групировку еще раз, только уже в кажом годе
yopp
Группировку по какому атрибуту?
Denys
атрибуту group внутри массива students
yopp
Т.е. вы хотите сгруппировать студентов и по году и по группе?
Denys
именно
yopp
Самый простой варинат указать и год и группу в _id в $group
Denys
хм, это уже значительно лучше
Denys
спасибо за помощь
hi
хм, это уже значительно лучше
Вообще же в агрегациях можно сколько угодно раз использовать разные стадии $group, $projection, $unwind и тд. Не соображу как именно в вашем случае, но вот похожий пример https://stackoverflow.com/questions/42456436/mongodb-aggregate-nested-group
Denys
кажется у меня получилось то что я хотел
Denys
спасибо большое