Artem
?
Artem
Или не как
Artem
?
Bohdan
можно достать объект перед апдейтом и смотреть сколько строк в нем сейчас
Artem
@BohdanPhoenix а если одним запросом
Bohdan
ну т.е. если ты перед добавлением строк будешь на бекенде чекать всё это, тогда у тебя задача сводится к арифметике твоего языка программирования
Bohdan
а, одним запросом
Bohdan
посмотри еще в сторону такой штуки как stored javascript в монге, но я на 100% уверен что если тебе нужно реализовать какую-то дополнительную логику в запросе, тогда что-то не так с архитектурой
Max
Подскажите пожалуйста, в инете почти нет информации об ошибке, что значит ошибка: Cache Reader No keys found for HMAC that is valid for time: { ts: Timestamp(1573966498, 90) } with id: 0"} использую php-mongodb модуль для апача последней версии, база данных 4.0.5 авторизация через ssl
Artem
@dd_bb Большое Спасибо, я уже разобрался
yopp
4.2.1 (Oct 18) ◦ 4.0.13 (Oct 19) • Плейграунд для запросов • Документация • Официальные курсы по MongoDB Stable: 4.2.1 ◦ Bugfix: 4.0.13 Legacy: 3.6.15 (Nov 6) ◦ EOL: 3.4.23 (Sep 16, 💀 Jan ‘20) #MongoTimes: Яндекс опубликовал записи с митапа По вопросам покупки Enterprise лицензии пишите @dd_bb ☠️: 3.2.21 (Dec ’18), 3.0.15 (May ’17)
yopp
MongoDB 3.6.15 — https://docs.mongodb.com/manual/release-notes/3.6/
Сергей
Здравствуйте , хотел спросить , у меня задача стоит скачать с гугл таблицы данные и засунуть в базу mongodb я данные получил а как обратиться к названию таблицы где пробел между названием колонны?
Dmitriy
Здравствуйте , хотел спросить , у меня задача стоит скачать с гугл таблицы данные и засунуть в базу mongodb я данные получил а как обратиться к названию таблицы где пробел между названием колонны?
А как вы пытаетесь сделать? Пока по вашей задаче вижу одну коллекцию employes, в которую вы и должны добавить записи. В вашем случае можно через insertMany.
Aleksandr
foremans['Дата приема на работу']
Сергей
Aleksandr
надо скопировать и вставить заголовок столбца
Aleksandr
мб там пробел лишний или буква латинская
Сергей
надо скопировать и вставить заголовок столбца
я прям с гугл таблицы копировал и заменил ваш текст
Aleksandr
судя по тому, что .прораб работает, а в заголовке оно с большой буквы, то либа переименовывает
Сергей
ставите первую строку не в виде: Прораб / Фамилия Имя Отчество / Заработная Плата / и т.д. а добавляете над текущей первой с человеческими текстами еще строку и в нее вносите: propab / fio / zp / и т.д. латинские простые ключи и читаете в коде строчки по именам латинских ключей + игнорируете строку [0] в массиве строк (т.к. это строка "человеческих" заголовков)
Aleksandr
мб там и пробелы на _ заменяются
Сергей
судя по тому, что .прораб работает, а в заголовке оно с большой буквы, то либа переименовывает
посоветовали так , но не знаю как добавить заголовки над заголовками
Aleksandr
не надо добавлять ничего, надо узнать как там либа назвала столбец этот
Aleksandr
console.log(Obect.keys(row)) сделай
Aleksandr
ну вот
Aleksandr
.датаприеманаработу
Сергей
ну вот
ага спасибо
Dmitriy
А зачем вам вообще заголовки таблицы гугловой? Сделайте маппинг полей таблицы на поля объекта монги. Я не уверен, что даже если вы уберёт пробелы использовать, что использовать кирллицу в названиях ключей это хорошая идея (хотя бы из-за объёма тех же ключей, ну и возможных проблем с поиском по ним в дальнейшем)
Dmitriy
И где в задаче про то что надо брать кирриллицу. Соответствовать - это не значит копировать
Dmitriy
Дата приёма на работу == date_of_employee вот соответствие с соблюдением нормального style guide
Сергей
И где в задаче про то что надо брать кирриллицу. Соответствовать - это не значит копировать
я не знаю как название колон переименовать ладно пойду в интернет с этим вопросом
Dmitriy
это просто тз , понятно дело что название коллон должны быть на английском и отображаться только на русском на клиенте
А если это тест для приёма на работу, после кириллицы в названиях ключей я бы вас как тим лид не взял ;)
Сергей
Маппинг)
ну по хорошему мне нужно написать массив коректных свойств, потом перебрать foremans и по индексу брать новый ключ из массива и присваивать ему значение?
Dmitriy
ну по хорошему мне нужно написать массив коректных свойств, потом перебрать foremans и по индексу брать новый ключ из массива и присваивать ему значение?
по хорошему вам надо сделать так (нодой не владею, т.ч. пишу на псевдо яп): arrayFromExcel = [{}...]; arrayToMongo = []; for i = 0; i < len(arrayFromExcel); i++ { objToMongo = {"date_of_employee": arrayFromExcel[i][1], "name": arrayFromExcel[i][0], ....}; arrayToMongo.push(objToMongo); } mongoDriver.inserMany(arrayToMongo);
Dmitriy
вывод соответсвующий
по тз забыли поле created_at :)
Dmitriy
в остальном да, примерно так
Сергей
по тз забыли поле created_at :)
а чтоб это поле создать я как должен сделать? поле даты загрузки информации сделать, с гугловых данных где то найти ?
Сергей
[ SpreadsheetRow { _xml: "<entry xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' xmlns:gsx='http://schemas.google.com/s preadsheets/2006/extended' xmlns:gd='http://schemas.google.com/g/2005' gd:etag='"EwBBLW0tYCt7ImA_W0wLTk1Q"'><id>https://spreadsheets.googl e.com/feeds/list/1F_tXXdFUO60xfF4kX5qmSWA-gxq_BM39D6VEMmoStKA/od6/cokwr</id><updated>2019-11-19T10:20:27.980Z</updated><category scheme='http://sche mas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#list'/><title>Иванов Михаил Сергеевич</title><content>датаприема наработу: 28.02.2018, датаувольнения: 01.01.2019, количествослетов: 5, количествоуспешныхобъектов: 90</content><link rel='self' type='application/at om+xml' href='https://spreadsheets.google.com/feeds/list/1F_tXXdFUO60xfF4kX5qmSWA-gxq_BM39D6VEMmoStKA/od6/private/full/cokwr'/><gsx:прораб>Иванов Ми хаил Сергеевич</gsx:прораб><gsx:датаприеманаработу>28.02.2018</gsx:датаприеманаработу><gsx:датаувольнения>01.01.2019</gsx:датаувольнения><gsx:количе ствослетов>5</gsx:количествослетов><gsx:количествоуспешныхобъектов>90</gsx:количествоуспешныхобъектов></entry>", id: 'https://spreadsheets.google.com/feeds/list/1F_tXXdFUO60xfF4kX5qmSWA-gxq_BM39D6VEMmoStKA/od6/cokwr', _links: [ self: 'https://spreadsheets.google.com/feeds/list/1F_tXXdFUO60xfF4kX5qmSWA-gxq_BM39D6VEMmoStKA/od6/private/full/cokwr' ], 'прораб': 'Иванов Михаил Сергеевич', 'датаприеманаработу': '28.02.2018', 'датаувольнения': '01.01.2019', 'количествослетов': '5', 'количествоуспешныхобъектов': '90', save: [Function (anonymous)], del: [Function (anonymous)] } ] вот данные
Сергей
обратиться к обьекту и с регулярки вырезать 2019-11-19T10:20:27.980Z? и записать в переменную created_at?
Aleksei
А где почитать как под капотом работает change stream? Это просто keep alive соединение из пула и монга туда пушит? есть у кого опыт мониторинга стримов?
Dmitriy
[ SpreadsheetRow { _xml: "<entry xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' xmlns:gsx='http://schemas.google.com/s preadsheets/2006/extended' xmlns:gd='http://schemas.google.com/g/2005' gd:etag='"EwBBLW0tYCt7ImA_W0wLTk1Q"'><id>https://spreadsheets.googl e.com/feeds/list/1F_tXXdFUO60xfF4kX5qmSWA-gxq_BM39D6VEMmoStKA/od6/cokwr</id><updated>2019-11-19T10:20:27.980Z</updated><category scheme='http://sche mas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#list'/><title>Иванов Михаил Сергеевич</title><content>датаприема наработу: 28.02.2018, датаувольнения: 01.01.2019, количествослетов: 5, количествоуспешныхобъектов: 90</content><link rel='self' type='application/at om+xml' href='https://spreadsheets.google.com/feeds/list/1F_tXXdFUO60xfF4kX5qmSWA-gxq_BM39D6VEMmoStKA/od6/private/full/cokwr'/><gsx:прораб>Иванов Ми хаил Сергеевич</gsx:прораб><gsx:датаприеманаработу>28.02.2018</gsx:датаприеманаработу><gsx:датаувольнения>01.01.2019</gsx:датаувольнения><gsx:количе ствослетов>5</gsx:количествослетов><gsx:количествоуспешныхобъектов>90</gsx:количествоуспешныхобъектов></entry>", id: 'https://spreadsheets.google.com/feeds/list/1F_tXXdFUO60xfF4kX5qmSWA-gxq_BM39D6VEMmoStKA/od6/cokwr', _links: [ self: 'https://spreadsheets.google.com/feeds/list/1F_tXXdFUO60xfF4kX5qmSWA-gxq_BM39D6VEMmoStKA/od6/private/full/cokwr' ], 'прораб': 'Иванов Михаил Сергеевич', 'датаприеманаработу': '28.02.2018', 'датаувольнения': '01.01.2019', 'количествослетов': '5', 'количествоуспешныхобъектов': '90', save: [Function (anonymous)], del: [Function (anonymous)] } ] вот данные
ну предположу что на js это делается так) { .... "created_at": new Date() .... } а конкретно в вашем коде вам виднее как это добавить ;)
Сергей
в 71 строке переменная resultArr ъранит в себе массив с обьектами
Dmitriy
Почему не получается запушить в бд?
какая ошибка возвращается в 79 строке?
Mike
асинхронность, res.send перемести внутрь колбека после 83 строки
Сергей
Dmitriy
ну судя по всему у вас там нет ошибки, а в базе ничего не появляется при этом?
Сергей
Сергей
Bohdan
проверь конекшн свой, может у тебя код элементарно не взаимодействует с БД
Mike
в консоль же выводится result
Сергей
Dmitriy
нет в базе теже данные которые записывал ручками
ну еще раз повторюсь я не спец в js, но чтобы я сделал: 1) проверил бы конект с базой, может элементарно вы пишете в другую базу не в ту, в которую смотрите 2) если пункт 1 нет, то включил бы profiler на монге и посмотрел, что происходит с вашими запросами. приходят они, не приходят. если приходят то чем заканчиваются. 3) соответственно если запросы не доходят, то см. п.1 4) если запросы доходят, но падают с чем-то, что вам не возвращает драйвер в код, то прокляните драйвер и смотрите по профалеру монги как поправить :)
Mike
вот же у тебя выводится в консоль result с чего решил что не пушится
Dmitriy
ну и номером ноль, я бы посмотрел на доку к драйверу, может быть там есть какой-то debug режим, который вам отобразить трассировку со стороны приложения
Сергей
секундочку сейчас коллекцию очищу заного создам и отпишусь
Сергей
Извиняюсь , запушилось
Сергей
до этого тоже самое делал без изменений было
Mike
ну ты понял почему?
Mike
базу подучи блин, ну куда тебе а
Сергей
ну ты понял почему?
я не спорю но мне тз до 7:30 сдать надо , пытаюсь сделать любыми способами , я монго дб даже сутки не юзаю уж извини
Dmitriy
до этого тоже самое делал без изменений было
я опять же хз как работает драйвер в js, но предположу что могла быть ситуация, что у вас коллекция называлась в нижнем регистре, а в последнем варианте кода вы коллекцию назвали с заглавной буквы. и если у вас драйвер не умеет на лету создавать коллекции (тут я хз), то могло и писаться в никуда. хотя конечно это крайне странное было бы поведение, надеюсь что в js все не настолько плохо, я бы лучше вернул ошибку чем в тихую ничего не делал)
Dmitriy
не причем там монга совсем, мсье не понимает js
а я не про монгу и писал, а про драйвер js ;)
Dmitriy
не причем там монга совсем, мсье не понимает js
ну а так то, все мы были когда-то джунами и тупили над элементарными вещами. просто многие быстро об этом забывают :)