Dmitry
Nosqlbooster ?
Dmitry
https://nosqlbooster.com/
Алмаз
Спасибо @medonomator @aveDenis! Попробую на днях.
Ilya
подскажите по такому вопросу у транзакции есть таймаут по умолчанию в 60 секунд, если в коде в транзакцию передать writeConcern с wtimeout больше он возимеет эффект или нет?
Валерий
Приветствую, подскажите, пожалуйста.. с помощью mongodb и python возможно ли реализовать следующую задачу..? если да то какими методами? Занесли в бд1 данные: DEF-код/оператор/область/ 900010;Т2 Мобайл;Тверская обл. 900011;Т2 Мобайл;Тверская обл. 900012;Т2 Мобайл;Тверская обл. 900013;Т2 Мобайл;Тверская обл. 900020;Т2 Мобайл;Челябинская обл. 900021;Т2 Мобайл;Челябинская обл. 900022;Т2 Мобайл;Челябинская обл. далее чтобы при занесении $nomer в новую таблицу, каждому номеру присваивались данные из прошлой бд1( в зависимости от DEF) 9000108562 9000115685 9000115686 9000126852 9000206852 9000136854 9000136855 9000136856 9000136857 9000221279 9000221280 9000221281 *** и в итоге должно получиться следующее.. DEF-код/оператор/область/$nomer 9000108562;900010;Т2 Мобайл;Тверская обл. 9000115685;900011;Т2 Мобайл;Тверская обл. 9000115686;900011;Т2 Мобайл;Тверская обл. 9000126852;900012;Т2 Мобайл;Тверская обл. 9000206852;900020;Т2 Мобайл;Челябинская обл. 9000136854;900013;Т2 Мобайл;Тверская обл. 9000136855;900013;Т2 Мобайл;Тверская обл. 9000136856;900013;Т2 Мобайл;Тверская обл. 9000136857;900013;Т2 Мобайл;Тверская обл. 9000221279;900022;Т2 Мобайл;Челябинская обл. 9000221280;900022;Т2 Мобайл;Челябинская обл. 9000221281;900022;Т2 Мобайл;Челябинская обл.
Nick
Приветствую, подскажите, пожалуйста.. с помощью mongodb и python возможно ли реализовать следующую задачу..? если да то какими методами? Занесли в бд1 данные: DEF-код/оператор/область/ 900010;Т2 Мобайл;Тверская обл. 900011;Т2 Мобайл;Тверская обл. 900012;Т2 Мобайл;Тверская обл. 900013;Т2 Мобайл;Тверская обл. 900020;Т2 Мобайл;Челябинская обл. 900021;Т2 Мобайл;Челябинская обл. 900022;Т2 Мобайл;Челябинская обл. далее чтобы при занесении $nomer в новую таблицу, каждому номеру присваивались данные из прошлой бд1( в зависимости от DEF) 9000108562 9000115685 9000115686 9000126852 9000206852 9000136854 9000136855 9000136856 9000136857 9000221279 9000221280 9000221281 *** и в итоге должно получиться следующее.. DEF-код/оператор/область/$nomer 9000108562;900010;Т2 Мобайл;Тверская обл. 9000115685;900011;Т2 Мобайл;Тверская обл. 9000115686;900011;Т2 Мобайл;Тверская обл. 9000126852;900012;Т2 Мобайл;Тверская обл. 9000206852;900020;Т2 Мобайл;Челябинская обл. 9000136854;900013;Т2 Мобайл;Тверская обл. 9000136855;900013;Т2 Мобайл;Тверская обл. 9000136856;900013;Т2 Мобайл;Тверская обл. 9000136857;900013;Т2 Мобайл;Тверская обл. 9000221279;900022;Т2 Мобайл;Челябинская обл. 9000221280;900022;Т2 Мобайл;Челябинская обл. 9000221281;900022;Т2 Мобайл;Челябинская обл.
Если вам разово нужно получить такой список, то просто сделайте его в питоне
Валерий
Если вам разово нужно получить такой список, то просто сделайте его в питоне
постоянно* и причем именно в монго нужно чтобы эти данные прописывались всегда к вновь добавленным номерам
Nick
постоянно* и причем именно в монго нужно чтобы эти данные прописывались всегда к вновь добавленным номерам
Заводите коллекцию с код-оператор-регион, где код будет _id. При добавлении номера сохраняете его в виде номер-код. Потом при поиске данных по номеру дополнительно вытягиваете по код оператора и регион
а
Всем доброе утро.)
а
Сейчас делаю один запрос findAll с фильтрацией и пагинацией (пагинация бог с ней skip limit в агрегейшн) Структура такая (лишнее не писал): User: _id Set<Role> (Set<ObjectId> - мануал референс) Set<Right> Role: _id Set<Right> То есть у юзера есть права, плюс список ролей, у каждой роли еще список прав (то есть права можно добавлять с ролями, а можно и без ролей) Нужно отфильтровать по списку прав findAll(Set<Right> filterList) Сначала сделал проджекшн из проджекшна, потом подумал что плодить $project в aggregation это плохо. (Промежуточный вопрос: Если в агрегейшне есть 2 прожекшна - это плохо? Они как-то грузят запрос, память итд? Думаю да) Свел к этому: db.collection.aggregate([{"$lookup":{"from":"role","localField":"roles","foreignField":"_id","as":"rls"}},{"$addFields": { finalRoles: { $setUnion: [ { $reduce: { input: "$rls.rights", initialValue: [ ], in:{$concatArrays: ["$$value","$$this"]}} },"$right"]} }}, {"$match": { "finalRoles": {"$in": ["ADMIN","asdf"]}}}]) Лукапом достал по айдишникам, потом добавил поле куда смержил права от ролей, редьюсом собранные в кучу, и юнион с rights которые в юзере отдельно от ролей ну и в конце match Вроде работает. Но вопрос в том (по сути вопрос ничем не отличается от предыдущего промежуточного), плохо ли, что я сделал addField, только чтобы там что-то искать? Может можно сделать этот поиск match по этой выборке не делая addField? Да и вообще может это совсем не так надо было сделать Плюс я посмотрел - в моем апи нет addField , но в интернетах предлагают такой воркераунд))) $project: { custom_field: "$obj.obj_field1", document: "$$ROOT" }
Nick
Сейчас делаю один запрос findAll с фильтрацией и пагинацией (пагинация бог с ней skip limit в агрегейшн) Структура такая (лишнее не писал): User: _id Set<Role> (Set<ObjectId> - мануал референс) Set<Right> Role: _id Set<Right> То есть у юзера есть права, плюс список ролей, у каждой роли еще список прав (то есть права можно добавлять с ролями, а можно и без ролей) Нужно отфильтровать по списку прав findAll(Set<Right> filterList) Сначала сделал проджекшн из проджекшна, потом подумал что плодить $project в aggregation это плохо. (Промежуточный вопрос: Если в агрегейшне есть 2 прожекшна - это плохо? Они как-то грузят запрос, память итд? Думаю да) Свел к этому: db.collection.aggregate([{"$lookup":{"from":"role","localField":"roles","foreignField":"_id","as":"rls"}},{"$addFields": { finalRoles: { $setUnion: [ { $reduce: { input: "$rls.rights", initialValue: [ ], in:{$concatArrays: ["$$value","$$this"]}} },"$right"]} }}, {"$match": { "finalRoles": {"$in": ["ADMIN","asdf"]}}}]) Лукапом достал по айдишникам, потом добавил поле куда смержил права от ролей, редьюсом собранные в кучу, и юнион с rights которые в юзере отдельно от ролей ну и в конце match Вроде работает. Но вопрос в том (по сути вопрос ничем не отличается от предыдущего промежуточного), плохо ли, что я сделал addField, только чтобы там что-то искать? Может можно сделать этот поиск match по этой выборке не делая addField? Да и вообще может это совсем не так надо было сделать Плюс я посмотрел - в моем апи нет addField , но в интернетах предлагают такой воркераунд))) $project: { custom_field: "$obj.obj_field1", document: "$$ROOT" }
а задача какая? что вы выбираете?
а
Юзеров, у которых есть список прав
Nick
Откажитесь от идеи выдавать отдельные права юзерам, заведите роли содержащие по одному праву и добавляйте их. Тогда все упростится
Гена
@dd_bb Привет подскажите пожалуйста. Вот я включаю профилирование для шардированной коллекции. Для сбора инфы мне надо собрать данные с каждого шарда и суммировать их или можно через монгос проверить ?
Георгий
Друзья добрый день! Подскажите плиз есть реплика сет из трех нод, на нее идет запись два раза в секунду и в случае падения ноды на которую идет запись кластер не успевает переключиться и nodejs завершает работу с ошибкой. Можно ли решить данную проблему настройками mongoosejs?
Daniil
А какого рода ошибка возникает?
Гена
ну вот я решил уточнить
Гена
у нас разрабы обмазались куберами своими и гонять на монгу
Гена
как сказал мне один тип "кубер юзают те, кто любит жостка потрахаца"
Георгий
https://docs.mongodb.com/manual/core/retryable-writes/
Спасибо в принципе помогло, нодажс не падает, но две записи потеряно
Георгий
write concern majority?
Нет retryWrites=true
yopp
Должен быть ещё и writeconcern: majority
yopp
https://docs.mongodb.com/manual/reference/write-concern/
Гена
Коллеги, а есть в монге функционал по ограничению размера бд?
Гена
ну это чутка не то. Цель в том, чтоб когда БД разрастется то смигрировать ее на отдельный кластер.
Гена
но спасибо)
Георгий
https://docs.mongodb.com/manual/reference/write-concern/
Данный параметр указывается в настройках соединения монги или при insertOne документа?
Георгий
https://docs.mongodb.com/manual/core/capped-collections/ ?
Спасибо большое за помощь! Заработало
Георгий
При вставке
Нашел. Несколько раз повторял и все равно теряются документы
yopp
Какая у вас версия монги?
yopp
Что в логах? Драйвер получает подтверждение операции? Происходит ли роллбэк?
yopp
Точно ли wc передаётся?
yopp
У вас PSS или PSA топология?
Георгий
Версия 4.2.2
Георгий
Транзакциями не пользуюсь только метод save
Георгий
Выдает ошибку в консоль MingiError: not master
Георгий
MongoError
Георгий
Pss
Георгий
Ролбека нет тк save использую
Георгий
Георгий
Wc передается вроде как
Ross
Привет коллеги! Росс из CryptoMood с вами
Ross
Коллеги, есть небольшая проблема с конвертацией данных из BSON в csv, можете выручить?
Ross
Спасибо!
Anonymous
почему не работает? не находит совпадения .find({ publishedAt: { $eq: date } })
Anonymous
дата new Date(req.query.date)
Anonymous
c $gte нахордит. но мне надо совдпание по дате
Anonymous
как выбрать документы у которых точная дата? я так полагаю он не округляет значачения. ну т.е. если в монге стоит 2 часа, а у меня дата указана округленная суточная, он не найдет. как тогад выбирать?
Anonymous
в бд сохранена дата как '2013-05-01T09:28:00.000Z' как мне найти статиьи за эту дату? в запрос прилетает '2013-05-01T00:00:00.000Z'
Anonymous
придется диапазоном искать?
Anonymous
нативного ничего нету?
yopp
Округлить на клиенте
yopp
Выдает ошибку в консоль MingiError: not master
Проверьте что ваш драйвер поддерживает эту фичу
Георгий
Проверьте что ваш драйвер поддерживает эту фичу
Как данная фича называется в терминах монги?
yopp
Write retry
Георгий
У меня последняя версия монгус 5.3.8
Георгий
Думаю что должен поддерживать
Георгий
У монги где можно посмотреть журнал операций? На каждой ноде
Nick
в бд сохранена дата как '2013-05-01T09:28:00.000Z' как мне найти статиьи за эту дату? в запрос прилетает '2013-05-01T00:00:00.000Z'
используйте комбинацию $gte && $lt, либо делайте отдельное поле именно с датой без времени
Anonymous
Есть коллекция и документы вида doc1{"имя":"Юра"} doc2{"имя":"Николай"} doc3{"имя":"Алексей"} doc4{"имя":"Семен"} ... Как получить по имени ключа все значения из всех документов в виде ["Николай", "Алексей", "Семен"] ?
Anonymous
А все нашел db.users.distinct("name")
Гена
Коллеги, доброе утро. Столкнулся с проблемой следующего характера. В шард кластере, через монгос show dbs работает а коллекции не может показывать, отваливается по таймауту. Проверил все шарды - все ок. Конфиг в порядке. Может есть ещё какие места, где стоит проверить
Гена
?
Гена
любые манипуляции с коллекциями заканчиваются вот такой вот ошибкой 019-12-29T08:24:36.497+0100 E QUERY [js] Error: count failed: { "ok" : 0, "errmsg" : "timed out", "code" : 202, "codeName" : "NetworkInterfaceExceededTimeLimit", "operationTime" : Timestamp(1577604275, 2), "$clusterTime" : { "clusterTime" : Timestamp(1577604275, 2), "signature" : { "hash" : BinData(0,"TOvyjGadjpuLl3jrlKBHdbMh6do="), "keyId" : NumberLong("6775657397336670210") } } } : _getErrorWithCode@src/mongo/shell/utils.js:25:13 DBQuery.prototype.count@src/mongo/shell/query.js:383:11 DBCollection.prototype.count@src/mongo/shell/collection.js:1431:12 @(shell):1:1
Гена
выглядит как нетворк ишью но все сервера пингуются, и ноды видят друг друга
yopp
выглядит как нетворк ишью но все сервера пингуются, и ноды видят друг друга
Все ноды должны иметь возможность подключаться к друг друга и все монгосы должны иметь возможность подключатся ко всем нодам
yopp
А клиенты должны иметь возможность подключиться к монгосу
Гена
Все ноды должны иметь возможность подключаться к друг друга и все монгосы должны иметь возможность подключатся ко всем нодам
Починили уже. Спасибо)) с сервером какая лажа была, дёрнули все сервера с монгой и завелось))